VARCHAR
が存在するさまざまな場所があります およびTEXT
違いはありません。私が言ういくつかのこと:
- 最大長が512文字を超える場合 、
TEXT
を使用します 。 -
TINYTEXT
は絶対に使用しないでください --VARCHAR(255)
に関連するネガティブのみがあります 。 -
VARCHAR(255)
は使用しないでください; 255ではなく妥当な最大値を選択してください(これは、複雑なクエリの一時テーブルに関連するマイナーな最適化です)。 -
CHAR
を使用する 本当に固定された長さのものだけです。このようなほとんどすべての場合、CHARACTER SET ascii
にタックします。 (またはlatin1)。 (それ以外の場合は、予想よりも多くのスペースが必要になります。 -
CHARACTER SET ut8mb4
を使用します 。 (例外はますますまれになっています。)
(申し訳ありませんが、逸脱します。トピックに戻ります...)
InnoDB行のレイアウトでインデックスを作成します(4つの異なるROW_FORMATs
があります )など、VARCHAR(513)
本質的にTEXT
と見分けがつかないでしょう 。
VARCHAR
の数少ない引数の1つ それはストアを指定された長さに制限するということです。しかし、それはどのくらいの頻度で重要ですか?