MongoDB 3.0 的解决数据库并发问题

在传统的关系型数据库(mysql或者 sql server)的事务中,通常在处理并发问题时借助于他们的特性: 1.原子性 2.一致性 3.隔离性 4.持久性

其中的每个特征的特性我就不特意进行解释了,大家可以自行百度
这里特别说的是隔离性 . 隔离性有四个级别:
1.串行(serializable) 可以有效避免脏读,不可重复读 和幻读的发生 效率最低
2.可重复读(Repeatable read) 可以避免脏读,不可重复读的发生
3.读已提交(read commited) 可以有效避免脏读的发生
4.读未提交(read uncommited) 什么情况都可以发生 ,但是效率最高
在这里 我就不解释脏读还有幻读,不可重复的详细解释了
脏读:两个事物中一个事务读取了另一个事物中未提交的数据
不可重复读:在同一个事务中不同时刻读取数据库中某个数据时造成两次读取结果不同,这是由于查询间隔期间另一个事物对数据进行了修改. (上锁可解决)
幻读:事务1将数据库中某些数据从一个值修改成另一个值,这时候,事务2往数据库中插入了一条数据,而这是事务1再查看自己刚才修改的数据,会发现有一行数据没有修改,就造成了错觉 和不可重复读一样是读取了另一个事物中已经提交的内容mongodb处理并发

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章