Chinaunix首页 | 论坛 | 博客
  • 博客访问: 377206
  • 博文数量: 166
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1640
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-05 11:44
个人简介

文章不在长,坚持不懈记录下努力前行的脚步

文章分类

全部博文(166)

文章存档

2017年(19)

2016年(59)

2015年(88)

我的朋友

分类: Mysql/postgreSQL

2015-06-13 00:19:59

事务日志顺序写,数据刷盘为随机写,事务日志先刷盘--预写式日志(write-Ahead logging)
支持事务存储引擎--innodb、ndb cluster
第三方支持事务存储引擎--XtraDB、PBXT

mysql中的事务
默认采用自动提交模式,在这种模式下,所有查询都在一个事务内,直到显示执行commit或者rollback,同时又开始了另一个新事务
有些命令执行也会强制提交当前活动事务,比如:DDl中会导致大量数据改变的操作,比如alter table,另外lock table也会达到同样的效果
命令修改隔离级别(会话级、全局级)
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
参数文件设置库级隔离级别

在事务中混合使用存储引擎
mysql服务层不管理事务,事务由下层的引擎实现,所以同一事务使用不同引擎的表是不可靠的。
混合存储引擎的事务中正常的提交没什么问题,但是非事务性的表没法回滚--当存在这种操作时会有警告。

隐式和显示锁定
在事务执行过程中,随时都可以执行锁定,锁只有在事务结束的时候统一释放,innodb会根据隔离级别在需要的时候自动加锁
显示加锁
存储引擎层实现
select ...lock in share mode;
select ...for update;
服务器层实现--尽量不要用,会影响性能,甚至会产生无法预料的结果
lock table;
unlock table;












阅读(961) | 评论(0) | 转发(0) |
0

上一篇:1.3.2死锁

下一篇:1.4 mysql MVCC

给主人留下些什么吧!~~