数据库
文章平均质量分 91
YuanlongWang
全栈开发工程师,热爱研究新技术,专注于数据研究领域,乐于分享
展开
-
MySQL事务隔离级别详解
序列化读(Serializable):最高级别的隔离。两个同时发生的事务100%隔离,每个事务有自己的『世界』。所有事务按照次序依次执行,因此,脏读、不可重复读、幻读都不会出现。虽然Serializable隔离级别下的事务具有最高的安全性,但是,由于事务是串行执行,所以效率会大大下降,应用程序的性能会急剧降低。如果没有特别重要的情景,一般都不会使用Serializable隔离级别。可重复读(Repeatable read,MySQL默认模式):如果一个事务成功执行并且添加了新数据,这些数据对其他正在执行原创 2023-04-23 00:26:52 · 428 阅读 · 0 评论 -
数据库底层运行原理之——事务管理器
如果一个事务只需要读取数据A,它会给数据A加上『共享锁』并读取,如果第二个事务也需要仅仅读取数据A,它会给数据A加上『共享锁』并读取,如果第三个事务需要修改数据A,它会给数据A加上『排他锁』,但是必须等待另外两个事务释放它们的共享锁。这个规则可以很好地工作,但有个例外:如果修改了一条数据、释放了关联的锁后,事务被取消(回滚),而另一个事务读到了修改后的值,但最后这个值却被回滚。事务开始时获取锁,结束时释放锁,这是可以实现纯粹的隔离,但是这种方法会等待所有的锁,在讲事务之前,我们需要理解ACID事务的概念。原创 2023-04-21 16:22:02 · 1440 阅读 · 0 评论