• 締切済み

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型に変更した際にパフォーマンスが落ちる等といったことがありえるのでしょうか? 宜しくお願い致します。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

#1です。 そういえば部分インデックスがありましたね。 使ったことないので忘れてました。失礼しました。 私見でもうしわけないですが部分インデックスは若干 運用方法も気をつける必要がありそうなので、 微妙な気がします。 とりあえず#1の私の回答は参考にならなかったような ので、あとは誰か別の人にきいてください

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

容量よりむしろtextはindexがきかないということの 方が大きいのでは? 当然プライマリにもユニークにも対応しませんので 正規化する場合のキーとして使用に耐えないでしょう 自然と、textとvarcharは使用方法が違ってくると思います。

karace
質問者

お礼

回答ありがとうございます。 ですが、MySQL3.23.2以降ではindexは効くようです。

関連するQ&A