MySQL架构‍中事务隔离级别 - SEO - 新闻资讯 - MySQL架构‍中事务隔离级别
新闻资讯

MySQL架构‍中事务隔离级别

发布时间:2021-04-08 浏览次数:2

我们都知道MySQL具有隔离特性,这里主要是指在多个事务共同运行时,为了防止读取的数据交叉造成脏读幻读不可重复读等情况,在进行MySQL架构‍时按照一定级别将这些隔离起来,当然根据不同任务需要不同的级别,今天我们看下都有哪些隔离级别。

6c7093a01b8c1ffa

一.未提交读

这个级别下其他可以看到本事务没有提交的部分修改因此会造成脏读的问题,读取到了其他未提交的部分而之后该事务进行了回滚。这个级别的性能没有足够大的优势但是又有很多的问题因此很少使用。

二.已提交读

其他只能读取到本事务已经提交的部分。这个级别有不可重复读的问题,在同一个事务内的两次读取拿到的结果竟然不一样,因为另外一个对数据进行了修改因此除了一些特定任务这种权限也不常用。

三.可重复读

可重复读解决了上面不可重复读的问题(看名字也知道),但是仍然有一个新问题就是幻读,当你读取id>5 的数据行时,对涉及到的所有行加上了读锁,此时例外一个事务新插入了一条id=6的数据,因为是新插入的所以不会触发上面的锁的排斥,那么进进行下一次的查询时会发现有一条id=6的数据而上次的查询操作并没有获取到,再进行插入就会有主键冲突的问题。

还有一种隔离级别是可串行化,这个在理论上能解决多事务并发所产生的所有问题,因为它能强制多有的任务所有的事务都进行串行执行,所以不会再存在脏读幻读不重复读等一系列问题,但是这样一来能导致整个任务整体性能大幅度下降,因此在实际MySQL架构‍中采用很少。


上一篇: MySQL DBA培训 安全性的内因跟外因

下一篇: 没有了

相关推荐

产品试用 产品试用
400-820-6580 免费电话