Dies ist ausschließlich ein MySQL-Problem -
MySQL hat verschiedene Engines - MyISAM, InnoDB, Memory...
MySQL hat unterschiedliche Beschränkungen für den Speicherplatz, den Sie verwenden können Indizes für Spalte(n) definieren - für MyISAM sind es 1.000 Bytes; es ist 767 für InnoDB
. Und der Datentyp dieser Spalten ist wichtig - für VARCHAR
, es ist 3x also ein Index auf einem VARCHAR(100)
nimmt 300 dieser Bytes (weil 100 Zeichen * 3 =300).
Um eine Indexierung zu ermöglichen, wenn Sie den Höchstwert erreichen, können Sie den Index in Bezug auf Teile des Spaltendatentyps definieren:
CREATE INDEX example_idx ON YOUR_TABLE(your_column(50))
Angenommen, dass your_column
ist VARCHAR(100)
, besteht der Index im obigen Beispiel nur aus den ersten 50 Zeichen. Bei der Suche nach Daten über das 50. Zeichen hinaus kann der Index nicht verwendet werden.