Mysql
 sql >> база данни >  >> RDS >> Mysql

Ред на съставно индексиране на InnoDB и изпълнение на INSERT

(Забележка:Този отговор изяснява или не е съгласен с някои от вече написаните коментари.)

DELETEs се забавят поради изтриване на записите в индекса. UPDATEs може да се забави -- зависи от това дали е променена индексирана колона.

SELECTs , UPDATEs и DELETEs , но не и INSERTs , трябва да намерите реда(овете); за това един индекс може да помогне много.

INSERT се наранява с допълнителна сума, ако има UNIQUE индекс за проверка.

Вторични ключове (в InnoDB), освен за UNIQUE ключове, се актуализират (обикновено поради INSERT и DELETEs , но вероятно поради UPDATE ) по „забавен“ начин чрез така наречения „Буфер за промяна“. Това на практика отлага актуализирането на индекса, но все пак поддържа индекса напълно използваем.

Нищо от това не се влияе от реда на колоните в индекса. Въпреки това, ако индексът е по-голям, отколкото може да бъде кеширан в RAM, "кеширането" влиза в действие и I/O може или не може да бъде включен. Но това е друга тема.

Като цяло ползата от индекс за четене далеч надхвърля забавянето на операциите за запис.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Мониторинг на производителността на MySQL с ClusterControl

  2. Показване на произволен резултат на mysql

  3. Обединяването/задържането на OpenJPA е много бавно

  4. Функция за търсене с гръцки знаци в MySQL

  5. Какво е значението на цитирани знаци с силен акцент (известен още като backtick) в MySQL?