授人以鱼不如授人以渔,从根儿上理解 MySQL,让 MySQL 不再是一个黑盒。

*   万里长征第一步(非常重要!非常重要!非常重要!此处省略一万遍) —— 如何愉快的阅读本小册

*   装作自己是个小白 —— 重新认识MySQL

*   MySQL的调控按钮 —— 启动选项和系统变量

*   乱码的前世今生 —— 字符集和比较规则

*   从一条记录说起—— InnoDB 记录结构

*   盛放记录的大盒子 —— InnoDB 数据页结构

*   快速查询的秘籍 —— B+ 树索引

*   好东西也得先学会怎么用 —— B+ 树索引的使用

*   数据的家 —— MySQL 的数据目录

*   存放页面的大池子 —— InnoDB 的表空间

*   条条大路通罗马 —— 单表访问方法

*   两个表的亲密接触 —— 连接的原理

*   谁最便宜就选谁 —— MySQL 基于成本的优化

*   兵马未动,粮草先行 —— InnoDB 统计数据是如何收集的

*   不好看就要多整容 —— MySQL 基于规则的优化(内含关于子查询优化二三事儿)

*   查询优化的百科全书 —— Explain 详解(上)

*   查询优化的百科全书 —— Explain 详解(下)

*   神兵利器 —— optimizer trace 的神奇功效

*   调节磁盘和CPU的矛盾 —— InnoDB 的 Buffer Pool

*   从猫爷被杀说起 —— 事务简介

*   说过的话就一定要办到 —— redo 日志(上)

*   说过的话就一定要办到 —— redo 日志(下)

*   后悔了怎么办 —— undo 日志 (上)

*   后悔了怎么办 —— undo 日志 (下)

*   一条记录的多幅面孔 —— 事务的隔离级别与MVCC

*   工作面试老大难 —— 锁

*   补充资料——专题式讲解

*   专题式讲解 —— MySQL的server层和存储引擎层是如何交互的

*   专题式讲解 —— MySQL查询成本和扫描区间(MySQL中IS NULL、IS NOT NULL、!=不能用索引?胡扯!)

*   专题式讲解 —— 听说有一个最左原则?这回终于讲清楚了

*   专题式讲解 —— 设计MySQL的大叔为何偏爱ref

*   专题式讲解 —— MySQL中NULL值引起的小锅

*   专题式讲解 —— MySQL使用索引执行IN子句

*   专题式讲解 —— MySQL的COUNT语句是怎么执行的

*   专题式讲解 —— MySQL的LIMIT这么差劲的吗

*   专题式讲解 —— MySQL:为什么查询列表中多了它,GROUP BY语句就会报错呢?

*   专题式讲解 —— MySQL冷知识:t1.id=t2.id=t3.id看着咋这么怪呢?

*   专题式讲解 —— MySQL乱码

*   专题式讲解 —— 字符从UTF-8转成GBK发生了什么?

*   专题式讲解 —— MySQL的定点数类型

*   专题式讲解 —— Innodb到底是怎么加锁的

*   专题式讲解 —— 语句加锁分析实例

*   专题式讲解 —— MySQL如何查看事务加锁情况

*   专题式讲解 —— MySQL介于普通读和锁定读的加锁方式—— semi-consistent read

*   专题式讲解 —— 两条一样的INSERT语句竟然引发了死锁?

*   专题式讲解 —— binlog那些事儿(一)

*   专题式讲解 —— binlog那些事儿(二)

*   专题式讲解 —— redo、undo、buffer pool、binlog,谁先谁后,有点儿乱

*   专题式讲解 —— XA事务与两阶段提交

*   给小孩子的书打个广告

*   写作本书时用到的一些重要的参考资料

*   小册答疑指南

*   后记 —— 关于写技术书籍/文章的四个指导原则