プロが教える店舗&オフィスのセキュリティ対策術

以下のURLのページを読んだのですがよく理解できません。。。
http://dev.mysql.com/doc/refman/4.1/ja/storage-r …
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型に変更した際にパフォーマンスが落ちる等といったことがありえるのでしょうか?

宜しくお願い致します。

A 回答 (2件)

#1です。



そういえば部分インデックスがありましたね。
使ったことないので忘れてました。失礼しました。
私見でもうしわけないですが部分インデックスは若干
運用方法も気をつける必要がありそうなので、
微妙な気がします。

とりあえず#1の私の回答は参考にならなかったような
ので、あとは誰か別の人にきいてください
    • good
    • 0

容量よりむしろtextはindexがきかないということの


方が大きいのでは?
当然プライマリにもユニークにも対応しませんので
正規化する場合のキーとして使用に耐えないでしょう
自然と、textとvarcharは使用方法が違ってくると思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/10/05 18:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!