文章目录
一、事务相关
1. 事务的ACID特性是什么?
总说:ACID是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)的缩写。
展开论述:
- 原子性:通过
undo log
实现,事务要么全部成功,要么全部失败回滚。 - 一致性:由应用层和数据库约束(如主键、外键)共同保证。
- 隔离性:通过锁机制和
MVCC
(多版本并发控制)实现。 - 持久性:通过
redo log
实现,确保事务提交后数据永久存储。
二、索引优化
2. B+树索引的优缺点?
总说:B+树是MySQL默认索引结构,支持范围查询和排序,但存在空间占用和更新代价问题。
展开论述:
- 优点:
- 层数低(通常3-4层),查询效率稳定(O(logN))
- 叶子节点形成链表,适合范围查询
- 缺点:
- 维护成本高(插入/删除可能导致树分裂)
- 非聚簇索引需要二次回表查询
3. 索引失效的常见场景?
总说:违反最左前缀原则、类型隐式转换、使用函数或运算会导致索引失效。
展开论述:
- 违反最左前缀:联合索引
(a,b,c)
,查询条件无a