opium
@opium
Просто люблю качественно работать

Используются ли в update запросах mysql индексы?

Когда пытаюсь проверить с помощью explain ругается на синтаксис.
  • Вопрос задан
  • 3935 просмотров
Пригласить эксперта
Ответы на вопрос 6
@dmitryklerik
а если просто написать EXPLAIN SELECT с теми же параметрами для WHERE и посмотреть?
Ответ написан
Melkij
@Melkij
PostgreSQL DBA
Используются.
Ответ написан
@zuborg
Используются, конечно, если условие where это позволяет.

Индексы позволяют быстро сделать выборку нужных строк, а что с ними делать — апдейтить, удалять, отдавать клиенту или использовать в джойне — это уже дело десятое.

Даже при инсерте для проверки уникальности значения поля нужен индекс.
Ответ написан
taliban
@taliban
php программист
Я бы сказал что индексы которые учавствуют в обновлении цвеличивают время обновления =)
Ответ написан
alekciy
@alekciy
Вёбных дел мастер
Эээ… что мешает если ну не посмотреть исходники, то хотя бы почитать мануал?

«The speed of the write depends on the amount of data being updated and the number of indexes that are updated. Indexes that are not changed do not get updated
dev.mysql.com/doc/refman/5.0/en/update-speed.html

Если в ходе апдейта не затрагивается индексированное поле, но и индекс не перестраивается. Все индексы связанные с заапдейчеными полями будут перестроены. Собственно в этом и есть смысл индексов. А какая часть в индексе будет перестроена и на сколько эффективно зависит от типа используемого индекса.
Ответ написан
@egorinsk
Сделайте InnoDB таблицу из 10 млн записей и сравните например скорость SELECT по индексу/без и скорость UPDATE. Подозреваю, что при выборке участвуют, так как UPDATE предполагает в начале выборку изменяемых строк.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы