Я читал this post в блоге производительности MySQL.Оптимизация InnoDB - «использовать транзакции при выполнении обновлений» - почему?
При применении настройки он говорит:
Сначала убедитесь, что вы используете транзакции при выполнении обновления
я в настоящее время только с помощью операций в местах, где есть несколько вставок или обновления с в то же время. то есть более одной таблицы.
Должен ли я изменить каждый UPDATE
, чтобы изменить его на транзакцию?
В чем разница между:
prepare sql
bind params
commit
и:
begin transaction
prepare sql
bind params
execute statement
commit transaction
с точки зрения того, что происходит на уровне базы данных, что делает один быстрее, чем другие?
+1. Более технический анализ: есть буфер, который задерживает запись в журнал (innodb_log_buffer_size), который нужно очищать чаще, если вы совершаете все это время, что приводит к ухудшению производительности. Буфер также автоматически очищается каждые 1 секунду. –