Heim > Datenbank > MySQL-Tutorial > Hauptteil

Warum sind MySQL-VARCHAR-Indizes in UTF8 auf 255 Zeichen beschränkt?

Linda Hamilton
Freigeben: 2024-11-20 15:46:16
Original
917 Leute haben es durchsucht

Why Are MySQL VARCHAR Indexes Limited to 255 Characters in UTF8?

MySQL VARCHAR-Indexlänge

Problem:

In MySQL Varchar-Spalten mit einem Präfix Indexe mit mehr als 255 Zeichen werden trotz ausreichender Indexgröße nicht zum Sortieren von Daten verwendet.

Antwort:

MySQL geht bei Indexberechnungen von 3 Bytes pro utf8-Zeichen aus. Bei einem Indexlimit von 767 Byte entspricht dies einem Maximum von 255 Zeichen.

Erklärung:

  • MySQL-Indexgrößen werden in Bytes angegeben, auch für nicht-binäre Datentypen wie VARCHAR.
  • Die maximale Präfixindexgröße pro Spalte beträgt 767 Bytes.
  • Bei utf8-Spalten geht MySQL davon aus, dass jedes Zeichen 3 Bytes belegt.
  • Daher , 767 / 3 = 255 Zeichen ist die maximale Indexlänge für utf8-Spalten.

Zusätzliche Überlegungen:

  • Eindeutige Einschränkungen für utf8-Spalten sind begrenzt auf 255 Zeichen, da der gesamte Zellenwert indiziert wird.
  • Normale Indizes können auf Spalten mit mehr als 255 Zeichen angewendet werden, indizieren jedoch nur die ersten 255 Zeichen.
  • Wenn die meisten Zeichen in der Spalte sind ASCII (1-Byte-Zeichen). Es ist möglich, mehr als 255 Zeichen in den Index einzufügen, die Berechnungen von MySQL berücksichtigen dies jedoch nicht.
  • Wenn die Option innodb_large_prefix aktiviert ist, kann das Indexlimit auf erhöht werden 3072 Bytes für Tabellen mit den Zeilenformaten DYNAMIC oder COMPRESSED.

Das obige ist der detaillierte Inhalt vonWarum sind MySQL-VARCHAR-Indizes in UTF8 auf 255 Zeichen beschränkt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage