![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
事务
文章平均质量分 87
黄嚯嚯
"清浊辨乎贵贱,运限决於枯荣"
展开
-
为什么MySQL选择REPEATABLE READ作为默认隔离级别?
前面我们说过,Oracle只只支持ANSI/ISO SQL定义的Serializable和Read Committed,其实,根据Oracle官方文档给出的介绍,Oracle支持三种隔离级别:即Oracle支持Read Committed、Serializable和Read-Only。Read-Only只读隔离级别类似于可序列化隔离级别,但是只读事务不允许在事务中修改数据,除非用户是SYS。在Oracle这三种隔离级别中,Serializable和Read-Only显然都是不适合作为默认隔离级别的,那么就只原创 2022-06-28 15:10:58 · 363 阅读 · 0 评论 -
数据库事务原理
数据库事务(transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。首先我们需要明确几个前提:如果执行多条SQL语句,这些语句对数据库的操作不是原子性的。一个事务分为:开启、执行、提交三个阶段。只有事务提交了数据才算做有效。数据库事务存在的意义就是保证对数据库操作的准确性 , 保证数据库操作准确性的便是事务的四大特性 原子性:事务开始后的所有操作要么成功要么失败一致性:事务的原创 2022-06-24 15:41:36 · 837 阅读 · 0 评论 -
为什么一个事务能读取到其他事务的数据?
首先我们需要明确几个前提:如果执行多条SQL语句,这些语句对数据库的操作不是原子性的。一个事务分为:开启、执行、提交三个阶段。只有事务提交(commit)了数据才算做有效。 根据前提3 可以得出结论 , 就是只有事务提交了数据才算做有效,才会真正的修改/新增到数据库 , 在这之前在事务里面做的所有操作都只是记录在事务的日志里面 , 并不会真正的刷新到数据库 , 所以也就说明了 , 为什么一个正在运行的事务, 可以读到另一个事务未提交的数据 , 当然了这种情况大多数出现在并发情况下.原创 2022-06-24 11:03:27 · 880 阅读 · 0 评论