Questo è solo un problema di MySQL -
MySQL ha diversi motori:MyISAM, InnoDB, Memory...
MySQL ha limiti diversi sulla quantità di spazio che puoi usare per definire gli indici sulle colonne - per MyISAM sono 1.000 byte; è 767 per InnoDB
. E il tipo di dati di queste colonne è importante, per VARCHAR
, è 3x quindi un indice su un VARCHAR(100)
prenderà 300 di quei byte (perché 100 caratteri * 3 =300).
Per accogliere un po' di indicizzazione quando raggiungi il valore massimo, puoi definire l'indice in relazione alle parti del tipo di dati della colonna:
CREATE INDEX example_idx ON YOUR_TABLE(your_column(50))
Supponendo che your_column
è VARCHAR(100)
, l'indice nell'esempio precedente sarà solo sui primi 50 caratteri. La ricerca di dati oltre il 50° carattere non sarà in grado di utilizzare l'indice.