正如上一篇中我翻译的那篇文章,关于MySQL数据库优化的宏观介绍,了解到了从大体上来讲,优化MySQL可以从3个角度来讲。那么这一篇文章,则从一个个优化点出发,统计出究竟有多少个地方我们可以来优化MySQL,这样即使是在面试还是工作中遇到问题,都能从宏观+细节上迅速定位问题、给出解决方案,真正做到了既有森林,又看到了树木。
一、优化SQL语句
优化SELECT语句
优化子查询,派生表,查看引用和公用表表达式
优化INFORMATION_SCHEMA查询
优化性能模式查询
优化数据更改语句
优化数据库特权
其他优化提示
二、优化和索引
MySQL如何使用索引
使用主键
使用外键
列索引
多列索引
验证索引使用情况
InnoDB和MyISAM Index Statistics Collection
B树和哈希指数的比较
使用索引扩展
优化器使用生成的列索引
隐形指数
降序索引
三、优化数据库结构
优化数据大小
优化MySQL数据类型
优化许多表
MySQL内部临时表使用
四、优化InnoDB表
优化InnoDB表的存储布局
优化InnoDB事务管理
优化InnoDB只读事务
优化InnoDB重做日志记录
InnoDB表的批量数据加载
优化InnoDB查询
优化InnoDB DDL操作
优化InnoDB磁盘I / O
优化InnoDB配置变量
优化具有许多表的系统的InnoDB
五、优化MyISAM表
优化MyISAM查询
MyISAM表的批量数据加载
优化修复表语句
六、优化MEMORY表
七、了解查询执行计划
用EXPLAIN优化查询
EXPLAIN输出格式
扩展EXPLAIN输出格式
获取命名连接的执行计划信息
估计查询性能
八、控制查询优化器
控制查询计划评估
优化提示
可切换优化
索引提示
优化器成本模型
优化器统计
九、缓冲和缓存
InnoDB缓冲池优化
MyISAM密钥缓存
准备声明和存储程序的缓存
十、优化锁定操作
内部锁定方法
表锁定问题
并口插入
元数据锁定
外部锁定
十一、优化MySQL服务器
优化磁盘I / O
使用符号链接
优化内存使用
优化网络使用
十二、测量性能(基准)
测量表达式和函数的速度
使用自己的基准
使用performance_schema测量性能
十三、检查线程信息
线程命令值
一般线程状态
复制主线程状态
复制从站I / O线程状态
复制从属SQL线程状态
复制从连接线程状态
事件调度器线程状态
这部分内容,是从MySQL官网上扒出来的优化的内容,其实每一个都是一个题目,我们这个阶段能做到的也只是从语句和索引的角度进行,涉及到之后的引擎优化等,需要我们不断地去努力。
喜欢阅读英文原文的同学们,也可以去官网上对应的部分学习,数据库的学习,不要仅仅停留在增删改查的级别上。