- 締切済み
MySQLのvarchar型とtext型について
以下のURLのページを読んだのですがよく理解できません。。。 http://dev.mysql.com/doc/refman/4.1/ja/storage-requirements.html http://dev.mysql.com/doc/refman/4.1/ja/blob.html 例えば'abc'という文字列を格納するとした場合、記憶容量は varchar型では3+1バイト、text型では3+2バイトとなるようですが、 1バイト(varchar)と2バイト(text)の違い以外で、 text型の方がDBに負担がかかるとか不利になるようなことはありますか? text型では格納する文字列の長さに関係無く、65535バイトを常に確保しているとか… text型の方が動作が遅いとか… 現状、255バイト以下を想定しているのでvarchar(255)にするつもりですが、 将来的に256バイト以上となることもありえるので 最初からtext型にしていた方がいいのでしょうか? また、将来text型に変更した際にパフォーマンスが落ちる等といったことがありえるのでしょうか? 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
#1です。 そういえば部分インデックスがありましたね。 使ったことないので忘れてました。失礼しました。 私見でもうしわけないですが部分インデックスは若干 運用方法も気をつける必要がありそうなので、 微妙な気がします。 とりあえず#1の私の回答は参考にならなかったような ので、あとは誰か別の人にきいてください
- yambejp
- ベストアンサー率51% (3827/7415)
容量よりむしろtextはindexがきかないということの 方が大きいのでは? 当然プライマリにもユニークにも対応しませんので 正規化する場合のキーとして使用に耐えないでしょう 自然と、textとvarcharは使用方法が違ってくると思います。
お礼
回答ありがとうございます。 ですが、MySQL3.23.2以降ではindexは効くようです。