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

Moje proste zapytanie MySql nie używa indeksu

Wydaje mi się, że masz kilka wierszy w tabeli „komentarze”, dlatego MySQL wykonuje pełne skanowanie tabeli zamiast używać indeksu w pierwszym zapytaniu. Szacuje się, że koszt pełnego skanowania tabeli może być niższy niż najpierw dopasowanie indeksu, a następnie wyszukanie wierszy.

W drugim zapytaniu używamy indeksu, ponieważ możliwe jest pobranie wszystkich kolumn zapytania (kolumna 'id') bezpośrednio z indeksu bez konieczności wyszukiwania wierszy tabeli po dopasowaniu indeksu. To jest znaczenie dodatkowych informacji „Korzystanie z indeksu”.

Spróbuj, jeśli przy dużej liczbie wierszy w „komentarzach” MySQL nadal używa pełnego skanowania, myślę, że byłoby to dziwne zachowanie. W rzeczywistości przetestowałem dokładnie to samo w MySQL w wersji 5.1 i zawsze używa on „indeksu”, nawet z kilkoma wierszami.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Policzyć dni w zakresie dat?

  2. Wydajniejszy system hierarchii

  3. Jak połączyć się ze zdalną bazą danych MySQL przez SSL za pomocą Play Framework?

  4. MySQL - BETWEEN nie wybierze poprawnych wyników

  5. Nazwy zestawów MySQL ODBC 5.1 nie są dozwolone przez sterownik