bcm*_*cfc 5 mysql optimization innodb
我在MySQL性能博客上阅读这篇文章.
在应用程序调整下,它说:
首先确保在进行更新时使用事务
我目前只在同时有多个插入或更新的地方使用事务.即多个表.
因此,我是否应该改变每一个UPDATE将其变为交易?
有什么区别:
prepare sql
bind params
commit
Run Code Online (Sandbox Code Playgroud)
和:
begin transaction
prepare sql
bind params
execute statement
commit transaction
Run Code Online (Sandbox Code Playgroud)
就数据库级别的情况而言,哪一个比另一个更快?
InnoDB默认以自动提交模式运行.这意味着每个查询都在它自己的事务中运行并立即被提交.在InnoDB中,这意味着将数据写入磁盘上的两个位置(不要向我询问详细信息 - 我正在从内存中写入我在MySQL性能博客上读过的内容;)).
现在,如果你一次进行一次更新/插入/删除,那么获得的性能就不会太高.但是,如果连续执行多次更新/插入/删除操作,可以通过将它们捆绑到事务中来节省一些硬盘时间,然后立即提交所有内容.