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

MIN/MAX спрямо ORDER BY и LIMIT

В най-лошия случай, когато разглеждате неиндексирано поле, използвайте MIN() изисква едно пълно преминаване на масата. Използване на SORT и LIMIT изисква сортиране на файлове. Ако се работи срещу голяма маса, вероятно ще има значителна разлика в възприеманата производителност. Като анекдотична точка от данни, MIN() отне 0,36 секунди, докато SORT и LIMIT взех .84s срещу таблица от 106 000 реда на моя сървър за разработчици.

Ако обаче разглеждате индексирана колона, разликата е по-трудна за забелязване (безсмислената точка от данни е 0.00s и в двата случая). Гледайки изхода на objasni, обаче, изглежда като MIN() може просто да извлече най-малката стойност от индекса („Изберете оптимизирани таблици“ и „NULL“ редове), докато SORT и LIMIT все още трябва да направи подредено обхождане на индекса (106 000 реда). Действителното въздействие върху производителността вероятно е незначително.

Изглежда като MIN() е начинът, по който трябва да отидете - той е по-бърз в най-лошия случай, неразличим в най-добрия, е стандартен SQL и най-ясно изразява стойността, която се опитвате да получите. Единственият случай, в който изглежда, че се използва SORT и LIMIT би било желателно би било, като mson споменато, където пишете обща операция, която намира горните или долните N стойности от произволни колони и не си струва да изписвате операцията за специален случай.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Просто въведение в използването на MySQL на терминала на Linux

  2. Как да обедините две таблици в MySQL

  3. Регистрация на потребител и проверка на имейл PHP и MySQL

  4. Отчитане на грешки в подготвените изявления на MySQLi

  5. Ръководство за проектиране на база данни за система за поръчки в ресторант в MySQL