To jest wyłącznie problem MySQL -
MySQL ma różne silniki - MyISAM, InnoDB, Memory...
MySQL ma różne ograniczenia dotyczące ilości miejsca, które można wykorzystać do zdefiniuj indeksy na kolumnach - dla MyISAM jest to 1000 bajtów; to 767 dla InnoDB
. A typ danych tych kolumn ma znaczenie - dla VARCHAR
, to 3x, więc indeks na VARCHAR(100)
zajmie 300 z tych bajtów (ponieważ 100 znaków * 3 =300).
Aby uwzględnić pewne indeksowanie po osiągnięciu wartości pułapu, możesz zdefiniować indeks w odniesieniu do części typu danych kolumny:
CREATE INDEX example_idx ON YOUR_TABLE(your_column(50))
Zakładając, że your_column
to VARCHAR(100)
, indeks w powyższym przykładzie będzie się składał tylko z pierwszych 50 znaków. Wyszukiwanie danych wykraczających poza 50. znak nie spowoduje użycia indeksu.