Ponieważ musi załadować całą tabelę, aby odpowiedzieć na zapytanie, a sortowanie 4 elementów jest tanie, optymalizator zapytań może po prostu unikać dotykania indeksu. Czy nadal zdarza się to przy większych stołach?
Zauważ, że kolumna varchar(3000) nie może być indeksem pokrywającym, ponieważ MySQL nie będzie zawierać więcej niż pierwszych 768 bajtów varchar w indeksie.
Jeśli chcesz, aby zapytanie odczytywało tylko indeks, indeks musi zawierać każdą kolumnę, którą SELECT
w nim. W innodb powinno to zacząć działać dla twojej dwukolumnowej tabeli, gdy tylko uczynisz textcol wystarczająco małym; w MyISAM musisz samodzielnie dołączyć kolumnę klucza podstawowego, na przykład CREATE INDEX textcolindex ON test (textcol,id);