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

Czy tworzenie indeksów może wykorzystywać istniejące indeksy?

MySQL zwykle odbudowuje całą tabelę po dodaniu indeksu, więc wszystkie istniejące również zostają odbudowane. To może być powolne.

Jedynym wyjątkiem jest dodanie indeksu za pomocą wtyczki InnoDB, czego nie można zrobić.

O ile mi wiadomo, zawsze wykonuje pełne skanowanie tabeli podczas budowania indeksu, jednak MOŻE wykonać skanowanie indeksu, jeśli dodajesz indeks, który ma ten sam (lub podzbiór) kolumn, co inny indeks. Takie indeksy są zwykle przydatne tylko wtedy, gdy kolumny są w innej kolejności.

Używając stockowego mysql, im więcej masz indeksów, tym wolniej będzie tworzyć nowy, ponieważ odbudowuje on również istniejące indeksy.

Myślę, że z wtyczką nie ma to żadnego znaczenia.

Tak czy inaczej, jeśli planujesz dodać kilka indeksów, powinieneś robić je wszystkie naraz, a nie pojedynczo.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kolumna sygnatury czasowej mysql

  2. Wymuś hibernację, aby utworzyć tabele po upuszczeniu i odtworzeniu bazy danych

  3. Session_start Szczegóły profilu użytkownika

  4. Jak mogę manipulować trafnością wyszukiwania pełnotekstowego MySQL, aby jedno pole było bardziej „wartościowe” niż inne?

  5. Jak sprawić, by Checkbox Status był zaznaczony lub niezaznaczony na podstawie wartości bazy danych?