首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

Oracle和Mysql中的数据库事务有关问题:Mysql Read-Repeatable有有关问题

2013-01-21 
Oracle和Mysql中的数据库事务问题:Mysql Read-Repeatable有问题今天不知不觉想到数据库的乐观锁和悲观锁,

Oracle和Mysql中的数据库事务问题:Mysql Read-Repeatable有问题

今天不知不觉想到数据库的乐观锁和悲观锁,遂想写个程序测测,却发现了另一个问题,Mysql InnoDB的Read-Repeatable事务级别使用不当会存在数据一致性问题。

?

如下的测试程序:

?

?

?

输出结果:

?

?

java.sql.SQLException: 仅 READ_COMMITTED 和 SERIALIZABLE 是有效的事务处理级
?

我使用的是Mysql默认安装,发现Mysql Innodb默认使用的就是Read-Repeatable事务,所以只能说要谨慎吧!

?

?

再则对于乐观锁,可能使用版本列、时间戳列、其它列数据对比,无论是何种方式,都要在提交前先查询一次,与之前查询的数据进行某些列的对比,如果使用了Read-Repeatable事务,那么对比永远是相同的,这样乐观锁就出现问题了,不是我们想要的结果,所以在使用乐观锁时不能使用Read-Repeatable事务,而应该使用Read-Commited事务。

?

以上为个人见解,本人对数据库事使用不是很多,有问题之处望高人指点赐教!!!

?

此处附上一处乐观与悲观锁的文章:http://www.zhujiangroad.com/program/Oracle/21775.html

?

?

热点排行