MySQL VARCHAR インデックスの長さ
MySQL テーブルのインデックスの最大長は 767 バイトです。これは列ごとであるため、複合インデックスは合計で 767 バイトを超えることはできません。ただし、このルールにはいくつかの例外があります。
特定のケース:
作成したインデックスは、最大インデックス長の 767 バイトを超えているため、使用されていません。これは、MySQL が UTF-8 文字あたり 3 バイト、および 512 文字 * 3 バイト/文字 = 1536 バイトを想定しているためです。
この問題を解決するには、次のことができます。
インデックスの長さを 255 文字に減らすか、
ALTER TABLE products ADD INDEX (name(255));
innodb_large_prefix 構成オプションを有効にし、DYNAMIC または COMPRESSED 行形式を使用します。
SET innodb_large_prefix = ON; ALTER TABLE products ROW_FORMAT=COMPRESSED;
追加注:
以上がMySQL VARCHAR(512) インデックスが使用されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。