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

Jak zoptymalizować bazę danych to zapytanie w dużej bazie danych?

Nie masz żadnych indeksów poza kluczem podstawowym. Musisz zrobić indeks na polach, których używasz w swoim oświadczeniu WHERE. Jeśli chcesz zindeksować tylko 1 pole lub kombinację kilku pól, zależy to od innych SELECTów, które będziesz uruchamiać względem tej tabeli.

Pamiętaj, że REGEXP nie można w ogóle używać indeksów, LIKE może używać indeksu tylko wtedy, gdy nie zaczyna się od symbolu wieloznacznego (więc LIKE 'a%' może używać indeksu, ale LIKE '%a' nie może), większy niż / mniejszy niż (<>) zwykle nie używaj również indeksów.

Pozostaje ci więc code i check pola. Przypuszczam, że wiele wierszy będzie miało tę samą wartość dla check , więc zacząłbym indeks od code pole. Indeksy wielopolowe mogą być używane tylko w kolejności, w jakiej są zdefiniowane...

Wyobraź sobie indeks utworzony dla pól code, check . Ten indeks może być użyty w zapytaniu (gdzie klauzula WHERE zawiera oba pola), także w zapytaniu zawierającym tylko code pole, ale nie w zapytaniu z tylko check pole.

Czy ważne jest, aby ORDER BY id? ? Jeśli nie, pomiń to, ponieważ uniemożliwi to przebieg sortowania, a Twoje zapytanie zakończy się szybciej.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wielokrotne wysyłanie wiadomości e-mail z załącznikiem - repost

  2. Wybierz zestawienie z wielu tabel ze zmiennymi danymi wejściowymi

  3. Migracja danych i schematu z MySQL do SQL Server

  4. Używasz 'OR' między klauzulą ​​HAVING i WHERE w MySQL?

  5. Zaktualizuj informacje o bazie danych za pomocą przycisku onclick