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

Indeksy MySQL - ile wystarczy?

Ilość indeksowania i linia robienia zbyt wiele będą zależeć od wielu czynników. W przypadku małych tabel, takich jak tabela „kategorii”, zwykle nie chcesz ani nie potrzebujesz indeksu, a to może w rzeczywistości obniżyć wydajność. Powodem jest to, że odczytanie indeksu zajmuje I/O (tj. czas), a następnie więcej I/O i czasu, aby pobrać rekordy powiązane z dopasowanymi wierszami. Wyjątkiem jest sytuacja, gdy zapytanie dotyczy tylko kolumn zawartych w indeksie.

W twoim przykładzie pobierasz wszystkie kolumny i tylko 22 wiersze i może być szybciej po prostu przeskanować tabelę i posortować je zamiast używać indeksu. Optymalizator może/powinien to robić i ignorować indeks. Jeśli tak jest, to indeks po prostu zajmuje miejsce bez żadnych korzyści. Jeśli twoja tabela "categories" jest często używana, możesz rozważyć przypięcie jej do pamięci, aby serwer db zachował do niej dostęp bez konieczności ciągłego wchodzenia na dysk.

Podczas dodawania indeksów należy zrównoważyć miejsce na dysku, wydajność zapytań oraz wydajność aktualizacji i wstawiania do tabel. Możesz uzyskać więcej indeksów w tabelach, które są statyczne i niewiele się zmieniają, w przeciwieństwie do tabel z milionami aktualizacji dziennie. W tym momencie zaczniesz odczuwać skutki utrzymania indeksu. Jednak to, co jest akceptowalne w Twoim środowisku, jest i może być określone tylko przez Ciebie i Twoją organizację.

Podczas przeprowadzania analizy pamiętaj, aby wygenerować/zaktualizować statystyki tabeli i indeksu, aby mieć pewność, że obliczenia będą dokładne.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Implementacja algorytmu ray-castingu w MySQL?

  2. Zapytanie Mysql do dynamicznej konwersji wierszy na kolumny

  3. Jak mogę wysyłać zapytania między dwiema datami za pomocą MySQL?

  4. Aplikacja Spring traci połączenie z MySQL po 8 godzinach. Jak poprawnie skonfigurować?

  5. Usługa Mysql nie uruchamia się, błąd funkcji inicjowania InnoDB