MySQL的可重复读级别能解决幻读问题吗?
发布时间:2021-03-07 11:03:19 所属栏目:动态 来源:互联网
导读:上面的流程执行,预期来说应该是事务1的第一条select查询出一条数据,第二个select查询出两条数据(包含事务2提交的数据)。 但是在实际测试中发现第二条select实际上也只查询处理一条数据。这是但是根据数据库理论的可重复读的实现(排他锁和共享锁)这是不应该
上面的流程执行,预期来说应该是事务1的第一条select查询出一条数据,第二个select查询出两条数据(包含事务2提交的数据)。 但是在实际测试中发现第二条select实际上也只查询处理一条数据。这是但是根据数据库理论的可重复读的实现(排他锁和共享锁)这是不应该的情况。 在了解实际原因前我们先复习下事务的相关理论。 数据库原理理论 事务 事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。 在关系数据库中,一个事务可以是一组SQL语句或整个程序。 为什么要有事务 一个数据库事务通常包含对数据库进行读或写的一个操作序列。它的存在包含有以下两个目的:
事务特性 事务具有4个特性:原子性、一致性、隔离性、持久性。这四个属性通常称为 ACID 特性。
(编辑:江门站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐