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

MySQL заявка с псевдоним, която не използва индекс

Това е заради псевдонима. ORDER BY може да използва индекс, ако подрежда по нещо, което е индексирано. Докато ceremonyDate датата може да бъде индексирана, YEAR(ceremoneyDate) променя стойността на ceremonyDate към нещо съвсем различно, така че YEAR(ceremoneyDate) не е индексиран.

И тъй като не можете да индексирате псевдоним, това означава, че за ORDER BY за да използвате индекс, той трябва да е просто име на колона или списък с имена на колони.

Трябва да можете да направите това и да използвате индекса:

SELECT ordinal,YEAR(ceremonydate) as yr 
FROM awardinfo 
ORDER BY ceremonydate DESC LIMIT 1;

Без да знаете как изглеждат вашите данни, това може да работи за вас.

Повече информация:http://dev.mysql. com/doc/refman/5.0/en/order-by-optimization.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Идеален тип поле за двоични данни с фиксирана ширина

  2. Производителност на Mysql в таблица от 6 милиона реда

  3. SQL_CALC_FOUND_ROWS / FOUND_ROWS() не работи в PHP

  4. Заявка за актуализиране на MySQL с ляво присъединяване и групиране по

  5. MySQL търсене за игнориране на тирета