Dit is uitsluitend een MySQL-probleem -
MySQL heeft verschillende engines - MyISAM, InnoDB, Memory...
MySQL heeft verschillende limieten voor de hoeveelheid ruimte die u kunt gebruiken om definieer indexen op kolom(men) - voor MyISAM is dit 1.000 bytes; het is 767 voor InnoDB
. En het gegevenstype van die kolommen is van belang - voor VARCHAR
, het is 3x dus een index op een VARCHAR(100)
zal 300 van die bytes in beslag nemen (omdat 100 tekens * 3 =300).
Om enige indexering mogelijk te maken wanneer u de plafondwaarde bereikt, kunt u de index definiëren met betrekking tot delen van het kolomgegevenstype:
CREATE INDEX example_idx ON YOUR_TABLE(your_column(50))
Ervan uitgaande dat your_column
is VARCHAR(100)
, zal de index in het bovenstaande voorbeeld alleen op de eerste 50 tekens staan. Zoeken naar gegevens na het 50e teken kan de index niet gebruiken.