Informationen zur MySQL-Varchar-Indexlänge für UTF-8-Spalten
In MySQL wird die Indexlänge für eine Varchar(n)-Spalte in angegeben Zeichen, keine Bytes. Allerdings geht MySQL davon aus, dass jedes UTF-8-Zeichen 3 Bytes belegt. Dies bedeutet, dass für eine Varchar-Spalte mit einer angegebenen Indexlänge von n die tatsächliche maximale Anzahl an Bytes, die indiziert werden können, 3n beträgt.
Um es aufzuschlüsseln:
Auswirkungen auf die Indexgröße für UTF-8-Spalten
Basierend auf der Annahme von 3 Bytes pro Zeichen, MySQL legt eine praktische Grenze für die Indexgröße für Varchar-Spalten mit dem UTF-8-Zeichensatz fest.
Berücksichtigung dynamischer und komprimierter Zeilenformate
In MySQL-Versionen 8.0 und höher können Sie möglicherweise die maximale Indexgröße für Varchar-Spalten in InnoDB-Tabellen mithilfe von DYNAMIC erhöhen oder KOMPRIMIERTE Zeilenformate. Diese Zeilenformate ermöglichen längere Präfixlängen, wodurch die Indexgrößenbeschränkung effektiv erhöht wird. Diese Optimierung wird jedoch für frühere MySQL-Versionen, einschließlich 5.5.27, nicht unterstützt.
Empfehlung für das Indexdesign
Beim Entwerfen von Indizes für Varchar-Spalten mit UTF-8 Zeichensatz wird empfohlen:
Das obige ist der detaillierte Inhalt vonWie geht MySQL mit der VARCHAR-Indexlänge für UTF-8-Spalten um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!