什么是事务以及事务的四大特性

简介: 事务是数据库操作的基本单元,具备ACID四大特性:原子性、一致性、隔离性、持久性。并发事务可能引发脏读、不可重复读、幻读等问题,数据库通过不同隔离级别(如读已提交、可重复读、串行化)加以控制。MySQL默认采用可重复读级别,在保证数据一致性的同时兼顾性能,避免高隔离级别带来的性能损耗。

必答内容:

事务是数据库中的基本概念,是指一组操作的集合,而这一组操作要么同时成功,要么同时失败,从而保证数据库中数据的正确性和完整性。

那事务呢,具有四大特性,也就是我们常说的ACID,分别是:原子性、一致性、隔离性、持久性。 那接下来,我就分别来聊聊这四大特性。

1).原子性指的是事务中的这一组操作,是不可分割的最小操作单元了,操作要么全部成功,要么全部失败。

2).一致性是指在事务操作的前后,必须使数据处于一致的状态。

3).隔离性指的是数据库中提供了隔离机制,保证事务在不受外部并发操作的影响的独立环境中运行。

4).持久性就比较简单了,就是事务一旦提交或回滚了,它对数据库的改变就是永久的。

可能继续发问的问题:

1).你刚才提到了并发事务,那并发事务回引发哪些问题?

并发事务引发的问题,主要有这么几个:

脏读:就是一个事务,读取到了另一个事务还没有提交的数据。

不可重复读:指的是在同一个事务中,先后读取同一条记录,但两次读取的数据不同。

幻读:指的是一个事务按照条件查询数据时,没有对应的行,但是插入时,又发现这行数据已经存在了好像出现了幻觉。

2).如何解决这些问题呢?

那这些问题,在数据库系统中都已经解决了。在数据库中提供了不同的隔离级别来解决这些问题, 分别有以下几种:

·READ UNCOMMITED:读未提交。这种隔离级别下,会出现脏读、不可重复读、幻读问题

READ COMMITED:读已提交。 这种隔离级别,解决了脏读问题,但是会出现不可重复读、幻读问题

REPEATABLE READ:可重复读。这种隔离级别,解决了脏读、不可重复读问题,但是会出现幻读问题。

SERIALIZABLE:串行化。解决了上述所有的并发事务问题。而在MySQL数据库中,默认的隔离级别是 REPEATABLE READ(可重复读)3).那为什么没有用SERIALIZABLE(串行化)这种隔离级别呢?其实,隔离级别,也不是越高越好。因为隔离级别高了,确实可以解决并发事务引发的问题,但是隔离级别越高,性能也越低。

相关文章
|
7月前
|
存储 监控 Java
分布式调用三大基石:超时、重试、幂等的架构级落地规范与全场景避坑指南
本文深入解析分布式调用稳定性三大基石:超时(设生死线、分层预算、中断执行)、重试(限次数/退避/幂等前提)与幂等(唯一键、原子校验、结果复用),结合全链路透传、AOP实现及高频避坑指南,提供可落地的架构级协同方案。
544 6
|
存储 SQL 缓存
Hadoop入门(一篇就够了)
Hadoop入门(一篇就够了)
44242 6
Hadoop入门(一篇就够了)
|
安全 数据库 存储
数据库设计基石:一文搞懂 1NF、2NF、3NF 三大范式
数据库设计常遇数据冗余、增删改异常?根源往往是表结构不规范。本文带你轻松掌握数据库三大范式——1NF、2NF、3NF,从原子列到消除依赖,层层递进,提升数据一致性与可维护性,让数据库设计更高效、安全!#数据库 #范式设计
4616 0
|
缓存 安全 网络协议
HTTP和HTTPS的区别有哪些?
本文简要总结了 HTTP 和 HTTPS 的区别,从概念、端口、连接方式、使用场景、安全性等多个角度进行了对比。HTTP 是无状态的、无连接的应用层协议,适用于一般性网站和性能要求较高的应用;HTTPS 则通过 SSL/TLS 层提供加密、认证和完整性保护,适用于涉及敏感信息和高安全性的场景。文章还讨论了两者在性能上的差异,包括握手和加密开销、缓存效果以及 HTTP/2 的多路复用技术。最终,根据具体需求选择合适的协议能够更好地平衡安全性和性能。
18757 2
HTTP和HTTPS的区别有哪些?
|
canal 缓存 NoSQL
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
根据对一致性的要求程度,提出多种解决方案:同步删除、同步删除+可靠消息、延时双删、异步监听+可靠消息、多重保障方案
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
|
SQL 安全 关系型数据库
【MySQL基础篇】事务(事务操作、事务四大特性、并发事务问题、事务隔离级别)
事务是MySQL中一组不可分割的操作集合,确保所有操作要么全部成功,要么全部失败。本文利用SQL演示并总结了事务操作、事务四大特性、并发事务问题、事务隔离级别。
6214 56
【MySQL基础篇】事务(事务操作、事务四大特性、并发事务问题、事务隔离级别)
|
数据处理 数据安全/隐私保护 流计算
Flink 三种时间窗口、窗口处理函数使用及案例
Flink 是处理无界数据流的强大工具,提供了丰富的窗口机制。本文介绍了三种时间窗口(滚动窗口、滑动窗口和会话窗口)及其使用方法,包括时间窗口的概念、窗口处理函数的使用和实际案例。通过这些机制,可以灵活地对数据流进行分析和计算,满足不同的业务需求。
2078 27
|
网络协议
通俗易懂理解三次握手、四次挥手(TCP)
这篇文章用通俗的语言解释了TCP协议中的三次握手和四次挥手过程,通过比喻和详细的状态变化描述,帮助读者理解建立和断开连接的原理和原因。
通俗易懂理解三次握手、四次挥手(TCP)

热门文章

最新文章