教程目录
MySQL 索引为什么用 B+ 树?
一、B+ 树特点 非叶子节点只存索引,不存数据,单节点可容纳更多索引,树更矮。 叶子节点通过双向链表连接,范围查询效率高。 所有数据都在叶子节点,查询路径长度一致,性能稳定。 二、为什么不用 B 树 B 树非叶子节点也存数据,导致单节点索引少、树更高、磁盘 I/O 多;范围查询需要中序遍历,效率低。
事务的 ACID 特性是什么?
一、原子性(Atomicity) 事务中的操作要么全部成功,要么全部失败回滚。由 undo log 保证:记录修改前的旧值,回滚时反向操作。 二、一致性(Consistency) 事务前后数据满足业务约束。由原子性、隔离性、持久性共同保证,是事务的最终目标。 三、隔离性(Isolation) 并发事
MySQL 的四种事务隔离级别?
一、四种级别(由低到高) 隔离级别 脏读 不可重复读 幻读 READ UNCOMMITTED 可能 可能 可能 READ COMMITTED 否 可能 可能 REPEATABLE READ(InnoDB 默认) 否 否 否(间隙锁) SERIALIZABLE 否 否 否 二、问题解释 脏读:读到其他
什么是 MVCC?
一、定义 MVCC(Multi-Version Concurrency Control,多版本并发控制),通过维护数据的多个历史版本,实现读写不阻塞,提高并发性能。 二、实现要素 隐藏字段:每行有 trx_id(创建该版本的事务 ID)和 roll_pointer(指向 undo log 中的上一版
如何排查和优化慢 SQL?
一、排查步骤 开启慢查询日志:slow_query_log = ON,long_query_time = 1。 用 explain 分析执行计划,关注 type、key、rows、Extra。 用 show profile 看各阶段耗时。 二、常见优化 索引:给 where、join、order b