Mysql事务详解(二)事务的隔离性和容易引起的问题

上一篇讲到事务的四大特性,其中有一个是事务的隔离性,即两个事物之间不会互相影响,为了实现这样的功能,就引入了事务的隔离性。

事务的隔离性

为了保证事务的隔离性,自然我们可以把事务设计成单线程的,这样的话效率就会极其低下,为了保证隔离性,又不失效率我们把丧失隔离性的情况分为三种

脏读:读到另一个未提交事务的数据

幻读:在一个事务过程中已经读取了一次表,此时恰巧另一个事务commit,导致这次事务再一次读取表时前后不一致。(表影响)

不可重复读:在一个事务过程中已经读取了一次a数据,此时恰巧另一个事务commit,导致这次事务再一次读取a数据时前后不一致。(行影响)

针对这三种情况推出了四大隔离级别

   四大隔离级别:
                Read uncommitted -- 不防止任何隔离性问题,具有脏读/不可重复度/虚读(幻读)问题
                Read committed -- 可以防止脏读问题,但是不能防止不可重复度/虚读(幻读)问题(mysql默认)
                Repeatable read -- 可以防止脏读/不可重复读问题,但是不能防止虚读(幻读)问题
                Serializable -- 数据库被设计为单线程数据库,可以防止上述所有问题

这四大隔离级别,安全性递增。效率递减

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014629433/article/details/51555569
个人分类: MySql
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭