Mysql存储引擎及事务级别

[b][size=large]存储引擎[/size][/b]

[size=medium]Mysql比较常用的存储引擎,MyISAM和InnoDB,其中MyISAM不支持事务,如果需要大量的select操作,MyISAM是一个不错的选择,InnoDB支持事务,如果需要大量的select和insert操作,可选择InnoDB。

其中InnoDB支持AutoCommit,默认是打开状态,也就是每写一条记录,Mysql都会自动Commit一次,此时读操作会很慢,而且一般如果如果程序中控制事务,此时是会冲突的,所以我们应该将AutoCommit关闭[/size]

[size=x-large][b]事务处理级别[/b][/size]

[size=medium]
[list]
[*]未提交读(Read Uncommitted):允许脏读;也就是可能读取到其他会话中未提交事务修改的数据

[*]提交读(Read Committed):不允许脏读,允许幻象读;只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别。

[*]可重复读(Repeated Read):不允许脏读,也不允许幻象读,在同一个事务内的查询都是事务开始时刻一致的,也就是说不会同一个Session不会读到别的Session所提交的数据。mysql的InnoDB默认该级别。

[*]串行读(Serializable):完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞
[/list]
[/size]

[size=x-large][b]常见的WEB应用中,如果使用Spring处理事务,如何设置Mysql[/b][/size]

[size=medium]
[list]
[*]应设置Mysql为InnoDB存储引擎

[*]将Mysql的AutoCommit关闭,设为flase; (set autocommit=0;)

[*]建议将Mysql的事务级别设为提交读级别,因为Mysql默认的是可重复读,该事务级别不支持幻象读(set transaction isolation level read committed; )
[/list][/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值