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

简介: 无

● 必答内容:
事务是数据库中的基本概念,是指一组操作的集合,而这一组操作要么同时成功,要么同时失败,从而保证数据库中数据的正确性和完整性。
那事务呢,具有四大特性,也就是我们常说的ACID,分别是:原子性、一致性、隔离性、持久性。 那接下来,我就分别来聊聊这四大特性。
1). 原子性指的是事务中的这一组操作,是不可分割的最小操作单元了,操作要么全部成功,要么全部失败。
2). 一致性是指在事务操作的前后,必须使数据处于一致的状态。
3). 隔离性指的是数据库中提供了隔离机制,保证事务在不受外部并发操作的影响的独立环境中运行。
4). 持久性就比较简单了,就是事务一旦提交或回滚了,它对数据库的改变就是永久的。
● 可能继续发问的问题:
1). 你刚才提到了并发事务,那并发事务回引发哪些问题?
并发事务引发的问题,主要有这么几个:
● 脏读:就是一个事务,读取到了另一个事务还没有提交的数据。
● 不可重复读:指的是在同一个事务中,先后读取同一条记录,但两次读取的数据不同。
● 幻读:指的是一个事务按照条件查询数据时,没有对应的行,但是插入时,又发现这行数据已经存在了好像出现了幻觉。
2). 如何解决这些问题呢?
那这些问题,在数据库系统中都已经解决了。在数据库中提供了不同的隔离级别来解决这些问题, 分别有以下几种:
● READ UNCOMMITED :读未提交。 这种隔离级别下,会出现脏读、不可重复读、幻读问题。
● READ COMMITED:读已提交。 这种隔离级别,解决了脏读问题,但是会出现不可重复读、幻读问题。
● REPEATABLE READ:可重复读。这种隔离级别,解决了脏读、不可重复读问题,但是会出现幻读问题。
● SERIALIZABLE:串行化。解决了上述所有的并发事务问题。
而在MySQL数据库中,默认的隔离级别是 REPEATABLE READ(可重复读)。
3). 那为什么没有用SERIALIZABLE(串行化) 这种隔离级别呢?
其实,隔离级别,也不是越高越好。因为隔离级别高了,确实可以解决并发事务引发的问题,但是隔离级别越高,性能也越低。
2、索引基础
2.1 MySQL数据库索引的数据结构?
● 必答内容:
在MySQL中的索引类型有多种哈,比如像B+tree索引、Hash索引等,但在InnoDB存储引擎中默认使用的是B+tree的索引。
● 可能继续追问的问题:
1). B+tree索引结构的特点是什么?
● B+tree呢,也叫多路平衡搜索树,也就是一个节点中可以存储多个key,多个key,也就对应多个指针,大数据量的情况下,树的高度更低。(树的阶数更多,高度更低,检索更快)。
● 在B+tree中,所有的数据都是存放在叶子节点的,非叶子节点,仅仅起到索引数据的作用。
● 而在B+tree的叶子节点中,形成了一个双向链表,便于区间范围查询。
2). 那为什么MySQL数据库的索引结构要采用B+tree?
● 参考 2.4

相关文章
|
SQL 关系型数据库 数据库
学习分布式事务Seata看这一篇就够了,建议收藏
学习分布式事务Seata看这一篇就够了,建议收藏
26246 2
|
SQL XML Java
Mybatis Plus自定义全局SQL注入
Mybatis Plus自定义全局SQL注入
833 0
|
7月前
|
存储 Java
java synchronized 锁升级:从偏向锁到重量级锁的底层自适应优化
`synchronized` 是Java核心同步机制,JDK 1.6起引入锁升级(无锁→偏向锁→轻量级锁→重量级锁),依托对象头Mark Word动态适配竞争强度,兼顾性能与稳定性,是并发编程必懂的底层逻辑。(239字)
665 8
|
9月前
|
数据采集 人工智能 监控
AI智能体是刚需还是噱头?3大争议辨真相
AI智能体赛道冰火两重天:微软豪掷百亿押注,Cerebras却黯然退场。资本狂热背后,是生产力革命还是泡沫?西门子、蚂蚁等落地案例展现潜力,但多数企业困于集成成本与技术瓶颈。低代码平台降低门槛,也引发生态锁死担忧。短期ROI难算清,长期价值需战略定力。智能体不是万能药,唯有回归业务本质,方能穿越 hype,走向真正落地。
423 0
|
10月前
|
运维 数据库 数据安全/隐私保护
DAS Agent、MCP Server 与 Dify 集成,实现跨账号数据库智能运维!
针对多账号管理难题,通过DAS Agent、MCP Server 与 Dify 集成,实现跨阿里云账号数据库实例的统一智能运维。主账号可纳管其他账号的DAS Agent,集中生成运维日报并推送至钉钉,提升集团级数据库管理效率。
|
Java 存储
线程池的核心参数有哪些?
线程池七大核心参数:核心/最大线程数、线程保持时间及单位、阻塞队列、线程工厂与拒绝策略。
1841 79
|
监控 算法 Java
java电商项目(七)
微服务网关作为系统唯一对外的入口,位于客户端和服务端之间,处理非业务功能,如路由请求、鉴权、监控、缓存、限流等。它解决了客户端直接调用多个微服务带来的复杂性、跨域请求、认证复杂、难以重构等问题。常用的微服务网关技术有Nginx、Zuul和Spring Cloud Gateway。Spring Cloud Gateway因其集成断路器、路径重写和较好的性能而被广泛使用。本文介绍了如何使用Spring Cloud Gateway搭建后台网关系统,包括引入依赖、配置文件、跨域配置、路由过滤配置、负载均衡、限流等。此外,还详细讲解了RBAC权限数据管理、组织机构管理单点登录(SSO)及JWT鉴权的实现
409 1
|
存储 安全 算法
Java容器及其常用方法汇总
Java Collections框架提供了丰富的接口和实现类,用于管理和操作集合数据。
432 2
Java容器及其常用方法汇总
|
Java Nacos 数据库
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(五) SEATA分布式事务篇(下)应用整合shardingsphere集成seata完整代码及订单-库存完整模拟案例
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(五) SEATA分布式事务篇(下)应用整合shardingsphere集成seata完整代码及订单-库存完整模拟案例
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(五) SEATA分布式事务篇(下)应用整合shardingsphere集成seata完整代码及订单-库存完整模拟案例
|
设计模式 存储 算法
分布式系统架构5:限流设计模式
本文是小卷关于分布式系统架构学习的第5篇,重点介绍限流器及4种常见的限流设计模式:流量计数器、滑动窗口、漏桶和令牌桶。限流旨在保护系统免受超额流量冲击,确保资源合理分配。流量计数器简单但存在边界问题;滑动窗口更精细地控制流量;漏桶平滑流量但配置复杂;令牌桶允许突发流量。此外,还简要介绍了分布式限流的概念及实现方式,强调了限流的代价与收益权衡。
951 12

热门文章

最新文章