1 数据库优化目的和方向
2 SQL语句优化
2.1 数据准备
2.2 如何发现有问题的SQL语句
2.2.1 慢查日志
慢查日志的包含的信息
日志分析工具
mysql自带的mysqldumpslow
分析结果
这个工具分析结果包含的信息少,因此常用下面这款。
pt-query-digest
2.2.2 如何通过慢查日志发现有问题的SQL
2.3 如何分析SQL查询
使用explain查询SQL的执行计划
2.4 SQL优化
2.4.1 Max()和Count()的优化
添加索引
结果
count(*)会统计null,count(列)不会
2.4.2 子查询的优化
2.4.3 groupby的优化
2.4.4 limit的优化
- 避免了数据量大时扫描过多的记录
3 索引优化
3.1 如何选择合适的列建立索引
3.2 删除冗余索引
查找冗余索引(在表information_schema中)
利用工具
3.3 维护索引
删除不用索引
4 表结构优化
4.1 选择合适的数据类型
4.2 范式化的优化
4.3 反范式化的优化
4.4 表的垂直拆分
拆分前
拆分后
4.5 表的水平拆分
5 系统优化
5.1 操作系统优化
5.2 MySQL本身优化
常用参数说明
5.3 第三方配置工具
6 服务器硬件优化
6.1 如何选择CPU