MySQL VARCHAR-Indexlänge
MySQL-Tabellen haben eine maximale Indexlänge von 767 Bytes. Dies gilt pro Spalte, daher darf ein zusammengesetzter Index insgesamt 767 Byte nicht überschreiten. Es gibt jedoch einige Ausnahmen von dieser Regel:
In Ihrem speziellen Fall:
Der von Ihnen erstellte Index wird nicht verwendet, da er die maximale Indexlänge von 767 Bytes überschreitet. Dies liegt daran, dass MySQL 3 Bytes pro UTF-8-Zeichen und 512 Zeichen * 3 Bytes/Zeichen = 1536 Bytes annimmt.
Um dieses Problem zu beheben, können Sie:
Reduzieren Sie die Länge des Index auf 255 Zeichen oder weniger.
ALTER TABLE products ADD INDEX (name(255));
Aktivieren Sie die Konfigurationsoption innodb_large_prefix und verwenden Sie das Zeilenformat DYNAMISCH oder KOMPRIMIERT.
SET innodb_large_prefix = ON; ALTER TABLE products ROW_FORMAT=COMPRESSED;
Zusätzlich Hinweise:
Das obige ist der detaillierte Inhalt vonWarum wird mein MySQL VARCHAR(512)-Index nicht verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!