Toto je výhradně problém MySQL -
MySQL má různé motory – MyISAM, InnoDB, Memory...
MySQL má různé limity na množství místa, které můžete použít definovat indexy na sloupci (sloupcích) - pro MyISAM je to 1 000 bajtů; je to 767 pro InnoDB
. A na datovém typu těchto sloupců záleží – pro VARCHAR
, je to 3x, takže index na VARCHAR(100)
zabere 300 těchto bajtů (protože 100 znaků * 3 =300).
Chcete-li se přizpůsobit určitému indexování, když dosáhnete maximální hodnoty, můžete definovat index s ohledem na části datového typu sloupce:
CREATE INDEX example_idx ON YOUR_TABLE(your_column(50))
Za předpokladu, že your_column
je VARCHAR(100)
, index ve výše uvedeném příkladu bude pouze na prvních 50 znacích. Vyhledávání dat za 50. znakem nebude moci index použít.