这本书买了都两年了,一直没有认真看,真是... 这次,我想花点时间把它从头到尾看一遍。
- 概述部分
- 第 1 章 MySQL 架构与历史 ...33 页
- 打造坚实的基础
- 第 2 章 MySQL 基准测试 ...32 页
- 第 3 章 服务器性能剖析 ...43 页
- 第 4 章 Schema 与数据类型优化 ...32 页
- 第 5 章 创建高性能的索引
- 第 6 章 查询性能优化
- 第 7 章 MySQL 高级特性
- 配置应用程序
- 第 8 章 优化服务器设置
- 第 9 章 操作系统与硬件优化
- 作为基础设施组件的 MySQL
- 第 10 章 复制
- 第 11 章 可拓展的 MySQL
- 第 12 章 高可用性
- 第 13 章 云端的 MySQL
- 第 14 章 应用层优化
- 第 15 章 备份与恢复
- 其他有用的主题
- 第 16 章 MySQL 用户工具
- 附录 A MySQL 分支与变种
- 附录 B MySQL 服务器状态
- 附录 C 大文件传输
- 附录 D Explain
- 附录 E 锁的调试
- 附录 F 在 MySQL 中使用 Sphinx
注意
- 本书总是提到 Percona Server,因为几位作者是 Percona 公司的创始人和主要开发者。
译者序部分提到作者有一个博客:https://mysqlperformanceblog.com,现在访问会跳转到 https://www.percona.com/blog/。 - 译者是淘宝公司的 DBA。我相信,淘宝在 MySQL 方面还是很有经验的。
- 本书是面向 MySQL 5.1 和 5.5 的。
- 示例代码在 https://www.highperfmysql.com 上。
MySQL 服务器逻辑架构图
第一层是大多数 C/S 架构都有的架构,负责连接处理、授权认证、安全等。
第二层是 MySQL 核心服务:查询解析,分析,优化,缓存、内置函数。
所有跨存储引擎的功能都在这一层实现:存储过程,触发器,视图。
第三层是存储引擎,屏蔽底层文件操作,对上层提供数十个 API。
除了 InnoDB 会解析外键定义之外,引擎不会涉及 SQL 相关的事情。
连接管理
- 一个连接一个线程
- 线程层池插件(5.5+)
- 认证,SSL(X.509 证书),权限管理
优化与执行
- SQL => 解析树
- 优化:重写查询,决定表的顺序,选择合适的索引...
用户有一些方法可以影响其决策过程。 - 通过
EXPLAIN
可以查看优化相关的一些信息。 - 优化器不关心存储引擎,但性能和存储引擎也有关系。
SELECT
会检查查询缓存(Query Cache)。