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

MySQL:różnica między `... ADD INDEX(a); ... DODAJ INDEKS(b);` i `... DODAJ INDEKS(a,b);`?

Połączony INDEKS jest kombinacją klawiszy „a” i „b”. Znacznie poprawia dostęp, jeśli „a” lub „a” ORAZ „b” są częścią wyrażenia wyszukiwania.

Ten indeks nie jest przydatny, jeśli w instrukcjach SQL podasz tylko „b”.

Dlatego może być przydatne podanie dwóch różnych indeksów - ale powinny one używać różnych nazw.

W zależności od wzorców dostępu polecam indeks na "a" i "b" oraz dodatkowy indeks na "b", jeśli odpowiada to twoim potrzebom.

Należy pamiętać, że każdy dodatkowy indeks spowalnia bazę danych przy wszystkich operacjach modyfikujących dane. Czasami lepiej jest trzymać niektóre indeksy z dala. Zwykle dobrą radą jest NIE UŻYWAĆ indeksów w żadnej kolumnie tabeli.

Jeszcze jedna wskazówka:aby zdecydować, czy należy użyć INDEX(a,b) czy INDEX(b,a), spójrz na rozkład swoich danych. Umieść wartości o wyższym rozkładzie różnych wartości w pierwszej kolumnie indeksu, aby zwiększyć selektywność tego indeksu. Ta wartość jest zwykle oparta na jakości pierwszego elementu indeksu.

Na przykład indeks w kolumnach NAZWA i PŁEĆ powinien być utworzony jako INDEX(NAZWISKO, PŁEĆ), ponieważ istnieje dużo więcej imion, które różnią się płcią (płciami?).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy to dziwne, że moje połączenie SQLAlchemy MySQL zawsze kończy się uśpieniem?

  2. while($row =mysql_fetch_assoc($result)) - Jak foreach $row?

  3. Utrata połączenia z serwerem MySQL podczas wysyłania losowych zapytań prostych

  4. Dodaj kolumnę MySQL ALTER TABLE:błąd w innej kolumnie

  5. Jak zoptymalizować zapytanie mysql, aby uzyskać kategorie i podkategorie