Mysql InnoDB优化——”;执行更新时使用事务处理";-为什么?

Mysql InnoDB优化——”;执行更新时使用事务处理";-为什么?,mysql,optimization,innodb,Mysql,Optimization,Innodb,我正在读MySQL性能博客 在“应用程序优化”下,它显示: 首先确保在执行更新时使用事务 我目前只在同时有多个插入或更新的地方使用事务。i、 e.不止一张桌子 因此,我是否应该更改每个更新,将其更改为事务 以下两者之间的区别是什么: prepare sql bind params commit 以及: 就数据库级别发生的情况而言,这会使一个数据库比另一个数据库更快?InnoDB默认以自动提交模式运行。它的意思是,每个查询都在它自己的事务中运行,并立即提交。在InnoDB中,这意味着将数据写入磁

我正在读MySQL性能博客

在“应用程序优化”下,它显示:

首先确保在执行更新时使用事务

我目前只在同时有多个插入或更新的地方使用事务。i、 e.不止一张桌子

因此,我是否应该更改每个
更新
,将其更改为事务

以下两者之间的区别是什么:

prepare sql
bind params
commit
以及:


就数据库级别发生的情况而言,这会使一个数据库比另一个数据库更快?

InnoDB默认以自动提交模式运行。它的意思是,每个查询都在它自己的事务中运行,并立即提交。在InnoDB中,这意味着将数据写入磁盘上的两个位置(不要问我细节——我只是从内存中写入我在MySQL性能博客上读过的内容;)


现在,如果您一次只执行一个更新/插入/删除,那么性能就不会有多大提高。但是,如果您连续执行多个更新/插入/删除操作,则可以将这些操作捆绑到事务中,然后一次性提交,从而节省一些硬盘时间。

+1。更多技术分析:有一个缓冲区会延迟写入日志(innodb_log_buffer_size),如果您一直提交日志,则需要更频繁地刷新日志,从而导致性能下降。缓冲区也会每1秒自动刷新一次。
begin transaction
prepare sql
bind params
execute statement
commit transaction