Fehlermeldung "Index column size too large"

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

Fehlermeldung "Index column size too large"

Postby okapache » 24. September 2020 14:02

Hallo!

Ich habe mariadb 10.1.45 auf meinem Server installiert. Leider kann ich momentan noch nicht auf die aktuelle Version aktualisieren.

Wenn ich jetzt eine Tabelle anlege, generiere ich auch Indizes. Der gekürzte SQL-Code dazu: "
Code: Select all
...`custName` VARCHAR(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL...`docComment` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL...PRIMARY KEY (`id`), INDEX `idxCustName` (`custName`), FULLTEXT `idxComment` (`custComment`)) ENGINE = InnoDB;
"

Leider führt das zu dem Fehler "#1709 - Index column size too large. The maximum column size is 767 bytes.".

Kann mir jemand hier evtl. helfen, die Ursache zu finden?
Was ist genau gemeint mit "column size too large"?

Bin für jeden Tipp hierzu dankbar.
okapache
 
Posts: 9
Joined: 28. June 2017 14:49
XAMPP version: ?
Operating System: DietPi

Re: Fehlermeldung "Index column size too large"

Postby Altrea » 24. September 2020 15:08

Hallo,

okapache wrote:Kann mir jemand hier evtl. helfen, die Ursache zu finden?
Was ist genau gemeint mit "column size too large"?

InnoDB erlaubt 767 Byte lange Index keys. Da du utf8mb4 als Zeichensatz verwendest nimmt jedes Zeichen 4 Bytes in Anspruch statt 3 wie bei utf8.
Das bedeutet, du kannst Spalten Indexieren die maximal 191 Zeichen lang sein können (767 / 4 = 191,75, abgerundet 191).
Deine Spalte ist aber 512 Zeichen groß.

Mögliche Lösungen sind hier ganz gut beschrieben: http://mysql.rjweb.org/doc.php/limits#7 ... db_indexes

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Fehlermeldung "Index column size too large"

Postby okapache » 24. September 2020 19:05

Vielen Dank für die ausführliche Erklärung!
Das hilft mir enorm.

Ich kürze einfach die Länge von meinem Feld auf 128, dann sollte es ja passen.
okapache
 
Posts: 9
Joined: 28. June 2017 14:49
XAMPP version: ?
Operating System: DietPi

Re: Fehlermeldung "Index column size too large"

Postby okapache » 24. September 2020 19:09

Noch eine ergänzende Frage: Kann es sein, dass die InnoDB-Limitierung in einer jüngeren MariaDB-Version verändert wurde?
Ich habe mein SQL-Statement während der Entwicklung mal in einem docker image laufen lassen und da habe ich das Problem mit dem Index nicht bekommen. Im docker image ist meiner Meinung nach 10.5.5.
okapache
 
Posts: 9
Joined: 28. June 2017 14:49
XAMPP version: ?
Operating System: DietPi

Re: Fehlermeldung "Index column size too large"

Postby Altrea » 24. September 2020 19:19

Seit Mariadb 10.2.2 glaube ich ist dieses Limit weggefallen.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Fehlermeldung "Index column size too large"

Postby okapache » 24. September 2020 19:24

Danke!
okapache
 
Posts: 9
Joined: 28. June 2017 14:49
XAMPP version: ?
Operating System: DietPi


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 13 guests