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

Wielokolumnowe indeksy bazy danych i szybkość zapytań

Nie. Bardzo ważna jest kolejność kolumn w indeksie. Załóżmy, że masz indeks podobny do tego:create unique index index_name on table_name (headline, coupon_code, description,expiration_date) W takim przypadku te zapytania będą używać indeksu

select * from table_name where headline = 1
select * from table_name where headline = 1 and cupon_code = 2

a te zapytania nie będą używać unikalnego indeksu:

select * from table_name where coupon_code = 1
select * from table_name where description = 1 and cupon_code = 2

Więc zasada jest taka. Jeśli masz zindeksowanych razem wiele pól, musisz określić pierwsze pole k, aby móc korzystać z indeksu.

Jeśli więc chcesz mieć możliwość wyszukiwania dowolnego jedno z tych pól należy utworzyć w indeksie na każdym z nich osobno (oprócz połączonego unikalnego indeksu)

Uważaj także na operator LIKE.

użyje to indeksu SELECT * FROM tbl_name WHERE key_col LIKE 'Patrick%'; a to nie spowoduje SELECT * FROM tbl_name WHERE key_col LIKE '%Patrick%';

wykorzystanie indeksu http://dev.mysql.com/doc /refman/5.0/pl/mysql-indexes.html indeks wielu kolumn http://dev.mysql. com/doc/refman/5.0/en/multiple-column-indexes.html




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyszukiwanie wsteczne MySQL

  2. Jak budować komentarze w wątkach z 1 lub 2 zapytaniami?

  3. Instalator MySQL utknął podczas uruchamiania usługi

  4. aktualizacja listy użytkowników w grupie:UPDATE lub DELETE + INSERT

  5. Najskuteczniejszy sposób na sklonowanie bazy danych AWS RDS?