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

Kiedy dodać indeks do pola tabeli SQL (MySQL)?

Nie zawsze jest jasne, gdzie używać indeksów w tabelach SQL. Istnieje jednak kilka ogólnych zasad, które mogą pomóc w większości przypadków w podjęciu decyzji.

  1. Umieść indeks w kolumnach, które są używane w klauzulach where
  2. Umieść indeks w kolumnach, których używasz do dołączenia.
  3. Staraj się nie używać więcej niż 4-5 indeksów w kolumnach w tej samej tabeli.

Ogólne koncepcje, o których należy pamiętać, to:

  1. Każdy indeks, którego używasz, przyspieszy wyszukiwanie w tych kolumnach.
  2. Każdy dodany indeks powodujący, że wstawianie do tej tabeli będzie nieco wolniejsze.
  3. Z poprzednich dwóch. Twoim obowiązkiem jest podjęcie decyzji o tym, ile wstawek i zapytań wykonasz w tabelach, aby zdecydować, czy użyć indeksu i na których kolumnach, czy nie.

EDYTUJ

Komentarz @AndrewLazarus jest naprawdę ważny i postanowiłem dodać go do odpowiedzi:

  1. Nie używaj indeksów w kolumnach zawierających tylko kilka różnych wartości. Na przykład kolumna, która zawiera stan, gdy jest tylko kilka stanów lub wartość logiczna. Powodem, dla którego nie należy tego robić, jest to, że indeks tak naprawdę nie pomaga, ponieważ zostanie podzielony tylko przez liczbę wartości, a ponieważ masz tylko kilka z nich, nie przyniesie to żadnej rzeczywistej korzyści. Tabela zajmowałaby więcej miejsca z indeksem i preforma wolniej przy wstawianiu, ale nie uzyskasz znacznie lepszej wydajności podczas wykonywania zapytań


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki jest najłatwiejszy sposób wyodrębnienia dat rozpoczęcia i zakończenia sprintu z bazy danych JIRA?

  2. Jak utworzyć bazę danych MySQL za pomocą interfejsu API cPanel

  3. Czy mogę wprowadzić hasło raz dla wielu wywołań wiersza poleceń mysql, gdy zapytania nie są znane z góry?

  4. Czy usunięcie tabeli w MySQL powoduje również usunięcie indeksów?

  5. Czy COUNT jest szybsze niż ściąganie rekordów i liczenie w kodzie?