7-事务控制篇-5

简介: 事务具ACID四大特性:原子性(全成或全败)、一致性(状态合法)、隔离性(并发互不干扰)、持久性(提交即永久)。索引需注意字段非空、高区分度、长度适中、数量适度(更新频繁表≤3个),过多索引会增空间开销、拖慢增删改性能。

21.简述事务的四大特性?

原子性:指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须完全应用到数据库,如果操作失败则不能对数据库有任何影响。 一致性:指事务开始前和结束后,数据库的完整性约束没有被破坏。 隔离性:指当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。 持久性:指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。

22.简述创建索引的注意事项?

非空字段:索引字段不能有NULL,如果有NULL值将不会包含在索引中。 索引字段越小越好:数据库的数据存储以页为单位一页存储的数据越多一次IO操作获取的数据越大效率越高。 唯一、不为空、经常被查询的字段 的字段适合建索引。 取值离散大的字段:(变量各个取值之间的差异程度)的列放到联合索引的前面,可以通过count()函数查看字段的差异值,返回值越大说明字段的唯一值越多字段的离散程度高。 限制创建索引的数量:对于存在大量更新操作的表,索引一般不超过3个。

23.为什么索引的数量不能太多?

当对表中的数据进行增加、删除、修改时,同时需要动态维护索引,降低了整体的维护速度。 索引需要占据物理空间,如果要建立聚簇索引,那么需要的空间就会更大,因为会将数据存储于叶子节点。 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。

24.简述数据库的行级锁与表锁?

表锁:

不会出现死锁,发生锁的冲突几率高,并发性低。 存储引擎在进行SQL数据读写请求前,会对涉及到的表进行加锁。 其中锁分为共享读锁和独占写锁:读锁会阻塞写,写锁会阻塞读和写。

行级锁:

会出现死锁,发生锁的冲突几率低,并发性高。 InnoDB引擎支持行锁,与Oracle不同,MySQL的行锁是通过索引加载的,也就是说,行锁是加在索引响应的行上的,要是对应的SQL语句没有走索引,则会全表扫描,行锁则无法实现,取而代之的是表锁,此时其它事务无法对当前表进行更新或插入操作。

行级锁注意事项:

行级锁必须有索引才能实现,否则会自动锁全表,那就不是行锁了。 两个事务不能锁同一个索引。 insert,delete,update在事务中都会自动默认加上排它锁。

行锁的适用场景:

避免不可重复读的场景。

25.简述为什么MySQL索引使用B+树而不用hash表和B树?

利用Hash需要把数据全部加载到内存中,如果数据量大,是一件很消耗内存的事,而采用B+树,是基于按照节点分段加载,由此减少内存消耗。 和业务场景有段,对于唯一查找(查找一个值),Hash确实更快,但数据库中经常查询多条数据,这时候由于B+数据的有序性,与叶子节点又有链表相连,他的查询效率会比Hash快的多。 b+树的非叶子节点不保存数据,只保存子树的临界值(最大或者最小),所以同样大小的节点,b+树相对于b树能够有更多的分支,使得这棵树更加矮胖,查询时做的IO操作次数也更少。

目录
相关文章
|
存储 缓存 NoSQL
深入理解Django与Redis的集成实践
深入理解Django与Redis的集成实践
650 0
|
2月前
|
人工智能 IDE API
阿里云DevBox一键部署Hermes Agent与Claude Code:从零搭建AI驱动开发闭环完整教程
2026年,AI驱动开发已经从辅助工具进化为可独立完成全流程任务的数字化开发团队。Hermes Agent与Claude Code的组合,正是当前最成熟、最稳定、最贴近真实工程场景的AI协同开发架构。阿里云基于云开发机DevBox推出的一键部署方案,让普通开发者无需关心底层环境配置,几分钟内即可拥有一支具备需求分析、方案设计、代码编写、调试优化、经验沉淀能力的全天候AI开发团队。
455 5
|
2月前
|
安全 程序员 API
初级程序员必备的十大技能之规范编码与团队协作(二)
教程来源 http://oplhc.cn/ 本指南系统梳理代码审查(Code Review)核心实践:涵盖PR规范、多维检查清单(功能/质量/性能/安全/测试/文档)、建设性评论技巧、健康协作心态,以及README、代码注释、CHANGELOG等文档编写标准,助力团队高效交付高质量、可维护、安全的代码。
|
4月前
|
存储 NoSQL 算法
4-Redis篇-2
本文详解Redis集群架构与核心机制:采用哨兵集群(1主2从+3哨兵)保障高可用;对比主从复制、哨兵、Cluster分片三大方案;解析主从同步的全量/增量复制流程;说明Cluster基于16384哈希槽的分片存储原理;简述MULTI/EXEC等事务命令及实际使用情况。(239字)
229 6
|
1月前
|
存储 供应链 安全
1688 新手怎么运营 —— 中小企业 B2B 数字化从 0 到 1 起店指南 摘要
本文专为1688新手商家打造,系统梳理B2B数字化起店全流程:从破除C端思维、建立四大核心认知,到开店筹备、商品上架、冷启动、流量获取与转化提升,强调合规、系统化与产品力。附避坑指南与三阶段成长路径,助中小企业稳扎稳打完成从0到1。
|
2月前
|
存储 关系型数据库 MySQL
7-事务控制篇-4
InnoDB支持事务、行级锁、外键及聚簇索引,具备崩溃恢复能力,是MySQL 5.5+默认引擎;MyISAM不支持事务与行锁,仅表级锁,存行数、用非聚簇索引,适合读多写少场景。
169 5
|
2月前
|
人工智能 自然语言处理 安全
阿里云百炼Token Plan和Coding Plan怎么选?一篇讲透区别与适用场景,告别纠结!
随着AI编程与智能体工具快速普及,阿里云百炼推出的订阅套餐成为开发者低成本使用大模型的主流选择。但很多用户在Token Plan与Coding Plan之间难以判断,再加上套餐状态频繁调整,很容易选错、买错、用错。本文基于2026年最新官方政策与真实使用体验,系统梳理两种套餐的定位、计费、模型支持、工具兼容性与实际限制,给出清晰可落地的选择建议,帮你一次性选对最适合自己的方案,不花冤枉钱、不踩不必要的坑。
1214 4
|
2月前
|
弹性计算 人工智能 测试技术
2026年阿里云便宜云服务器推荐与选购指南
2026年阿里云推出史上最强优惠:打破新老用户壁垒,实现“新老同价、续费同价”。99元/年e实例、199元/年u1实例长期稳定;新用户可抢38元/年轻量服务器;企业享百万迁云补贴与GPU 4折。省钱避坑指南,助你轻松上云!
666 4
|
2月前
|
SQL 关系型数据库 MySQL
7-事务控制篇-7
本文简述MySQL三大核心要点:联合索引的最左匹配原则(从左依次匹配,范围查询后失效)、SQL执行顺序(FROM→JOIN→WHERE→GROUP BY→HAVING→SELECT→ORDER BY→LIMIT),以及常见索引失效场景(如LIKE前导%、OR单边无索引、隐式类型转换、函数/运算操作等),并指出EXPLAIN是诊断索引是否生效的关键工具。(239字)
328 2
|
2月前
|
存储 算法 关系型数据库
7-事务控制篇-2
InnoDB与MyISAM均采用B+树索引,但实现迥异:InnoDB主键索引为聚簇索引,叶子节点存完整数据;MyISAM为非聚簇索引,索引与数据分离,叶子仅存行地址。辅助索引方面,InnoDB存主键值(需回表),MyISAM直接存物理地址。(239字)
142 2

热门文章

最新文章