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

MySQL-производителност при поръчка на изчислена колона

Всъщност не можете да оптимизирате тази заявка.

Сортирате резултата с помощта на изчислена стойност, така че не можете да използвате индекс. Ако използвате explain можете да видите как се изпълнява вашата заявка и using temporary ще присъства в extra колона, което означава, че всички данни от вашата заявка се съхраняват във временна таблица, в която се извършва подреждането.

Няма значение дали искате само първите 50 съвпадения в заявката, тя трябва първо да получи всички данни, да ги изхвърли във временна таблица, да сортира резултата в тази таблица и след това да ви върне първите 50 съвпадения.

Както можете да предположите, това е отнемаща време и памет операция.

Така че най-добрият вариант е да поставите индекс в таблицата, за да получите всички редове, от които се нуждаете възможно най-бързо и след това да ги обработите с php за да получите нужните ви данни.

Между другото, разгледайте Ръководство за оптимизиране на MySQL .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разлика между float и десетичния тип данни

  2. повреди от инжектиране на mysql?

  3. Намерено:бит, очаквано:булев след надграждане на Hibernate 4

  4. Колекцията от картографирани изявления не съдържа стойност за mybatis mapper

  5. Вмъкване на обект datetime.datetime на Python в MySQL