这篇文章主要讲解了“mysql中的4种隔离级别分别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql中的4种隔离级别分别是什么”吧!
1、读未提交,即所有事务都能看到其他未提交事务的执行结果。未提交阅读是安全性最低的隔离级别,事务并发问题是脏阅读。如果事务A读取了事务B未提交的更新数据,此时事务B回滚,那么A读取的数据就是脏数据,这个过程就是脏读。
2、读取已提交,读取已提交的内容,符合隔离的简单定义:一个事务只能看到已提交事务所做出的改变,所以读取提交后不会出现脏读(写数据加行级排他锁(其他事务不能读写),所以写过程的结果不能读取,直到事务处理完毕才会释放排他锁,读取的数据加行级共享锁(只能读,不能写),所以读的时候写不出来。而且读取提交的并发问题是不能重复读取,比如事务A多次读取同一数据,事务B在事务A多次读取的过程中,对数据进行了更新和提交,导致事务A多次读取同一数据时,结果不一致。
3、可重复读是MySQL的默认事务隔离级别,它保证同一事务的多个实例在并发读取数据时能看到相同的数据行。可重复阅读避免了不可重复阅读(给写的数据加行级排他锁(其他事务不能读写),事务结束后释放,给读的数据加行级共享锁(其他事务只能读不能写),事务结束后释放),而可重复阅读的并发事务问题是幻读。幻读是指当用户读取某一范围的数据行时,另一项事务将新行插入该范围。当用户再次读取该范围的数据行时,会发现新的幻影行。
4、串行化是最高的隔离级别。它通过在每个读取的数据线上添加共享锁。如果其他事务想改写添加共享锁的表格,将被挂起,直到数据线释放锁(可能导致大量加班和锁竞争),强制事务串行执行。串行解决了并发事务中的幻读问题。
感谢各位的阅读,以上就是“mysql中的4种隔离级别分别是什么”的内容了,经过本文的学习后,相信大家对mysql中的4种隔离级别分别是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!