mysql 事务

点击量:31

AutoCommit

show variables  like 'AUTOCOMMIT'

mysql默认采用AutoCommit模式,
如果不是显式开始一个事务,则每个查询都被当做一个事务执行提交操作

关闭AutoCommitzhihou

关闭AutoCommit 后,默认所有语句都在一个事务中,
  直到显式的执行commit或rollback,该事务结束,同时又开始一个新事务

事务中使用多种存储引擎

mysql服务层不管理事务,事务是第三层的存储引擎管理的
比如你对两个表进行事务操作,表1使用了myisam,表2使用了innodb,如果事务失败,表1不会回滚,因为myisam不支持事务

多版本并发控制

多版本并发控制(mvcc)可以简单的认为是一种行级锁的变种,他在很多情况下避免了加锁操作,因此开销更低

mvcc的实现是通过保存数据在某个时间点的快照来实现的额,也就是说,不管需要执行多长时间,每个事物看到的数据都是一致的。

innodb的mvcc 是通过在每行记录后面保存两个隐藏的列来实现的,这两个列一个保存了行的创建时间,一个保存了行的过期时间,存储的并不是实际时间,而是系统的版本号

发表评论

电子邮件地址不会被公开。

20 + 19 =