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つ それはストアを指定された長さに制限するということです。しかし、それはどのくらいの頻度で重要ですか?