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

Някакъв начин да избегнете сортиране на файлове, когато поръчката по е различна от клаузата where?

Имайте предвид, че терминът MySQL filesort не означава непременно, че записва на диска. Това просто означава, че ще се сортира без използване на индекс. Ако резултатният набор е достатъчно малък, MySQL ще го сортира в паметта, което е с порядък по-бързо от дисковия I/O.

Можете да увеличите размера на паметта, която MySQL разпределя за файлови сортове в паметта, като използвате sort_buffer_size сървърна променлива. В MySQL 5.1 размерът на буфера за сортиране по подразбиране е 2MB, а максимумът, който можете да разпределите, е 4GB.

актуализация: По отношение на коментара на Джонатан Лефлър относно измерването на колко време отнема сортирането, можете да научите как да използвате SHOW PROFILE FOR QUERY което ще ви даде разбивката за това колко време отнема всяка фаза на изпълнение на заявката.



  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 и php?

  3. MySQL избира вчерашната дата

  4. Вземете записи с най-висок/най-малък <каквото> на група

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