邢台做移动网站多少钱,网校平台搭建,互联网品牌设计公司,设计师网址导航网隔离级别
概念理解
事务的概念 事务是数据库管理系统中的一个基本单位#xff0c;它代表了一组数据库操作。 事务是一个不可分割的工作单元#xff0c;要么全部成功执行#xff0c;要么全部失败回滚。 事务的目标是确保数据库的一致性、隔离性、持久性和原子性#xff…隔离级别
概念理解
事务的概念 事务是数据库管理系统中的一个基本单位它代表了一组数据库操作。 事务是一个不可分割的工作单元要么全部成功执行要么全部失败回滚。 事务的目标是确保数据库的一致性、隔离性、持久性和原子性ACID属性。
事务的特性
原子性Atomicity事务是原子操作要么全部成功要么全部失败回滚。一致性Consistency事务将数据库从一致状态转变为另一个一致状态。隔离性Isolation事务之间是相互隔离的互不干扰。持久性Durability一旦事务提交成功其结果将永久保存在数据库中。
隔离级别
首先什么是事务隔离级别
事务隔离级别是数据库管理系统用来控制多个并发事务之间相互干扰程度的概念。它规定了一个事务在执行期间能够看到其他事务对数据库的修改的程度以确保数据库的一致性和隔离性。
**未提交读(Read uncommitted)**是最低的隔离级别。通过名字我们就可以知道在这种事务隔离级别下一个事务可以读到另外一个事务未提交的数据。这种隔离级别下会存在幻读、不可重复读和脏读的问题。
**提交读(Read committed)**也可以翻译成读已提交通过名字也可以分析出在一个事务修改数据过程中如果事务还没提交其他事务不能读该数据。所以这种隔离级别是可以避免脏读的发生的。
可重复读(Repeatable reads)由于提交读隔离级别会产生不可重复读的读现象。所以比提交读更高一个级别的隔离级别就可以解决不可重复读的问题。这种隔离级别就叫可重复读。但是这种隔离级别没办法解决幻读。
**可串行化(Serializable)**是最高的隔离级别前面提到的所有的隔离级别都无法解决的幻读在可序列化的隔离级别中可以解决。
隔离级别与脏读、不可重复读、幻读
隔离级别DR(脏读)NR不可重复读PR幻读RU读未提交YESYESYESRC读已提交NOYESYESRR可重复读NONOYESSerializable串行NONONO
YES表示会出现
NO表示不会出现
RU脏读
RC不可重复读
RR幻读
serializable解决所有问题
脏读读到了其他事务还没有提交的数据。
不可重复读对某数据进行读取过程中有其他事务对数据进行了修改UPDATE、DELETE)导致第二次读取的结果不同。
幻读事务在做范围查询过程中有另外一个事务对范围内新增了记录(INSERT)导致范围查询的结果条数不一致。
隔离级别的选择
权衡一致性和性能一致性和性能之间存在权衡。较高级别的隔离通常提供更好的一致性但可能降低性能因为它会引入锁定和资源争夺。读者需要权衡这两个因素以确定最适合其应用的平衡点。
大厂高并发场景比较多因此一般会选择RC隔离级别。像一致性要求较高的如金融等行业通常会选择RR隔离级别。