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

Kiedy MySQL aktualizuje indeksy?

Aktualizacje indeksów są dwojakie.

Pierwsza część to wstawianie/aktualizowanie/usuwanie wpisu do/z indeksu. Indeks jest aktualizowany natychmiast po zmianie rekordu, a proces ten blokuje zapytanie do momentu zakończenia.

Pozwala to na szybsze wyszukiwanie rekordów na podstawie warunku w indeksowanej kolumnie, co jest najbardziej zrozumiałym celem indeksu.

Druga część to aktualizacja statystyk indeksu. Dzięki temu optymalizator może określić, czy dla danego zapytania warto w ogóle korzystać z indeksu. Wyobraź sobie zapytanie, takie jak SELECT * FROM users WHERE disabled = 0 . Załóżmy, że większość użytkowników jest w rzeczywistości aktywna. Jeśli statystyki indeksów są aktualne, optymalizator zda sobie sprawę, że większość rekordów z tabeli zostanie zwrócona przez zapytanie, a tabelę prawie w całości trzeba będzie przeskanować. Prawdopodobnie zdecyduje się nie używać indeksu i od razu zeskanuje tabelę.

Ta aktualizacja nie odbywa się automatycznie z wyjątkiem bardzo konkretnych sytuacje . Statystyki te powinny być regularnie aktualizowane ręcznie za pomocą ANALYZE TABLE [table_name]



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

  2. Instrukcja MYSQL If w transakcji powodująca błąd

  3. Zdalne łączenie mysql przez darmowy host

  4. błąd 1045 (28000) odmowa dostępu dla użytkownika 'root'@'localhost' (przy użyciu hasła:TAK)

  5. MySQL - następny / poprzedni identyfikator z jazdą na rowerze