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

Kolejność indeksowania złożonego InnoDB i wydajność INSERT

(Uwaga:ta odpowiedź wyjaśnia lub nie zgadza się z niektórymi już napisanymi komentarzami.)

DELETEs są spowolnione z powodu usunięcia wpisów indeksu. UPDATEs może spowolnić — zależy to od tego, czy indeksowana kolumna została zmieniona.

SELECTs , UPDATEs i DELETEs , ale nie INSERTs , trzeba znaleźć wiersze; w tym celu indeks może bardzo pomóc.

INSERT ucierpi o dodatkową kwotę, jeśli istnieje UNIQUE indeks do sprawdzenia.

Klucze pomocnicze (w InnoDB), z wyjątkiem dla UNIQUE klucze są aktualizowane (zwykle z powodu INSERTs i DELETE , ale prawdopodobnie z powodu UPDATE ) w sposób „opóźniony” poprzez tzw. „Bufor zmian”. To skutecznie opóźnia aktualizację indeksu, ale nadal utrzymuje go w pełni użytecznym.

Na żaden z nich nie ma wpływu kolejność kolumn w indeksie. Jednakże, jeśli indeks jest większy niż może być buforowany w pamięci RAM, w grę wchodzi „buforowanie” i we/wy może, ale nie musi być zaangażowane. Ale to już inny temat.

Ogólnie korzyść z indeksu do czytania znacznie przeważa spowolnienie operacji zapisu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. BŁĄD 1130 (HY000):Host „” nie może połączyć się z tym serwerem MySQL

  2. Ściśle automatyczne zwiększanie wartości w MySQL

  3. Jak działa zawieszenie transakcji na wiosnę?

  4. Jak zmienić mysql na mysqli?

  5. MYSQL sum() dla różnych wierszy