MySQL 查询优化
第一章:一个章节就讲清楚 MySQL 架构,锁,事务,多版本并发控制等,讲得很精炼,需要了解过才能读懂上下文。掌握它,然后跟公众号、无效博客重复的内容 say bye bye。
四、五、六章:主要介绍查询优化,比较贴近日常业务开发工作,重点看看
八、九、十四章:讲服务器优化,硬件优化,应用层优化
十、十一,十二、十五:讲复制,扩展,高可用,备份与恢复,与MySQL的高可用、扩展性有关
一说到提高 SQL 的查询效率,脑海里条件反应似的想到加索引。
其实加索引这是一方面。
我觉得需要一个系统的、有结构的分类和总结。
大致分为库表结构优化、索引设计优化和查询优化。
库表结构优化
- 选择合适的数据类型
例如:字符串类型使用 varchar 而不是 char - 在范式和反范式的设计中取舍
例如:适当冗余字段
索引设计优化
- 提高索引的选择性(区分度)
- 组合索引
- 选择适合的索引列顺序
- 使用覆盖索引
- 善用最左前缀原则避免创建重复的索引
查询优化
- 避免查询不需要的列
- 把连接查询分解成单表查询
- MySQL 5.5 及以下的版本避免使用子查询,用关联查询来优化,使用 5.6 及以上版本的则可以考虑子查询。但无论哪个版本子查询的效率都不如关联查询的高。
还没有评论,来说两句吧...