Mysql
 sql >> база данни >  >> RDS >> Mysql

Когато се изпълнява EXPLAIN, ако стойността на полето за ключ не е нула, но Extra е празна, използва ли се ключът?

Using index не означава това, което мислите, че означава. Ако присъства в Extra колона, това показва, че оптимизаторът всъщност не чете целите редове, той използва индекса (изключително), за да намери информация за колоните.

Ключът все още може да се използва за други неща, например за извършване на справки, ако имате WHERE клауза и т.н. Във вашия конкретен сценарий, например, изчезването на Using temporary; всъщност означава, че вашият индекс се използва, тъй като MySQL вече не трябва да пренарежда съдържанието на вашата таблица в нова временна таблица, за да изпълни GROUP BY .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQLSyntaxErrorException при опит за изпълнение на PreparedStatement

  2. Извикайте mysql вложени/вътрешни функции в querydsl

  3. Вземете най-близката дата от таблицата на MySQL

  4. Предавайте поточно двоичен файл от MySQL за изтегляне с PHP

  5. Премахнете клаузата за ограничение от MySQL Workbench