Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zoptymalizować ORDER BY dla kolumny wyliczanej na OGROMNEJ tabeli MySQL?

Znalazłem 2 (trochę oczywiste) rzeczy, które pomogły przyspieszyć to zapytanie do satysfakcjonującego poziomu:

  1. Zminimalizuj liczbę wierszy, które należy posortować. Dzięki użyciu indeksu w polu „id” i podselekcji, aby najpierw zmniejszyć liczbę rekordów, sortowanie plików w obliczonej kolumnie nie jest takie złe. Tzn:

    SELECT t.value1, (t.value2 * an_arbitrary_float) as SCORE
    FROM (SELECT * FROM sometable WHERE id = 1) AS t 
    ORDER BY SCORE DESC
    
  2. Spróbuj zwiększyć wartość sort_buffer_size w my.conf, aby przyspieszyć te sortowanie plików.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zwracanie „ostatniego” wiersza każdego „grupuj według” w MySQL

  2. MySQL Z klauzulą

  3. Używanie backticków wokół nazw pól

  4. Jak zainstalować MySQL 8 z Workbench w systemie Windows 10?

  5. Przechowywanie dat innych niż gregoriańskie w typie daty Mysql