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

MySQL - indeks wielokolumnowy

Ogólna zasada dotycząca indeksów to umieszczanie jednego na dowolnym polu używanym w WHERE lub JOIN klauzula.

Biorąc to pod uwagę, istnieje kilka optymalizacji, które możesz zrobić. Jeśli WIESZ że pewna kombinacja pól jest jedyną, która będzie kiedykolwiek używana w WHERE w danej tabeli, możesz utworzyć pojedynczy klucz wielopolowy tylko dla tych pól, np.

INDEX (field1, field2, field5)

vs.

INDEX (field1),
INDEX (field2),
INDEX (field5)

Indeks wielopolowy może być w wielu przypadkach bardziej wydajny niż konieczność skanowania wielu indeksów. Minusem jest to, że indeks wielopolowy jest użyteczny tylko wtedy, gdy dane pola są faktycznie używane w klauzuli WHERE.

Z przykładowymi zapytaniami, ponieważ element i field_id znajdują się we wszystkich trzech indeksach, lepiej byłoby podzielić je na ich własny dedykowany indeks. Jeśli są to zmienne pola, lepiej zachować dla nich własny, dedykowany indeks. np. jeśli kiedykolwiek będziesz musiał zmienić field_id zbiorczo, DB musi zaktualizować 3 różne indeksy, vs. aktualizowanie tylko jednego dedykowanego.

Ale wszystko sprowadza się do testów porównawczych – przetestuj swoją konkretną konfigurację z różnymi ustawieniami indeksów i zobacz, która działa najlepiej. Zasady kciuka są przydatne, ale nie działają w 100% przypadkó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. Wielojęzyczne tytuły kategorii w bazie danych Mysql

  2. Jak zbiorczo wstawić w mySql i node.js za pomocą mysljs

  3. Jaki jest najłatwiejszy sposób ustalenia, czy użytkownik jest online? (PHP/MYSQL)

  4. gdzie mogę znaleźć mysql.data.dll dla c#

  5. Trafność wyszukiwania pełnotekstowego Mysql w wielu tabelach