Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL nie używa indeksu dla ORDER BY

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);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uprawnienia MYSQL Update muszą również wybrać uprawnienia?

  2. MySQL Workbench:Jak utrzymać połączenie przy życiu

  3. Dlaczego moje zapytanie wielokolumnowe jest znacznie wolniejsze niż odpowiadające zapytania jednokolumnowe, nawet z indeksem wielokolumnowym?

  4. Docker-compose:mysqld:nie można utworzyć/zapisać do pliku '/var/lib/mysql/is_writable' (Errcode:13 — odmowa uprawnień)

  5. REPLACE bez rozróżniania wielkości liter w MySQL?