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

Indeksy i wielokolumnowe klucze podstawowe

Nie jestem dogłębnie zaznajomiony z wewnętrznymi elementami indeksów w mySql, ale w przypadku dwóch znanych mi produktów dostawców baz danych (MsSQL, Oracle) indeksy są strukturami zrównoważonego drzewa, których węzły są zorganizowane jako sekwencjonowana krotka kolumn indeks jest zdefiniowany na (w zdefiniowanej sekwencji )

Tak więc, chyba że mySql robi to zupełnie inaczej (prawdopodobnie nie), każdy indeks złożony (w więcej niż jednej kolumnie) może być użytecznym dla każdego zapytania, które wymaga filtrowania lub sortowania według podzbioru kolumn w indeksie, o ile lista kolumn jest zgodna, tj. jeśli kolumny, ułożone w taki sam sposób, jak sekwencjonowana lista kolumn w pełnym indeksie, są uporządkowanym podzbiorem pełnego zestawu kolumn indeksu, który zaczyna się na początku aktualnej sekwencji indeksów, bez przerw z wyjątkiem końca...

Innymi słowy, oznacza to, że jeśli masz indeks na (a,b,c,d), zapytanie filtrujące (a), (a,b) lub (a,b,c) może również użyć indeksu , ale zapytanie, które wymaga filtrowania według (b), (c) lub (b,c) nie będzie mogło użyć indeksu...

Tak więc w Twoim przypadku, jeśli często musisz filtrować lub sortować według kolumny element sam, musisz dodać kolejny indeks do tej kolumny samodzielnie...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego password_verify zwraca wartość false?

  2. pdo przygotowane wyciągi z symbolami wieloznacznymi

  3. Ciągle otrzymuję ten kod błędu mysql #1089

  4. Identyfikatory MySQL Select, które występują w różnych wierszach z wieloma określonymi wartościami dla kolumny

  5. Testowanie połączenia z bazą danych Entity Framework