在工作和面试过程中,我们经常遇到优化SQL的问题,所以本文主要从:设计、中间件、高可用,三个方案,提供给大家一种优化mysql的方案。
常见优化方案
- 从设计角度优化
- 服务降级(限流,限定查询范围)
- 选择正确的存储引擎
- 建立合适的索引
- 分库分表(水平分表,垂直分表)
- 建立异构索引表
- 限定查询范围
- 从中间件角度优化
- 热点数据采用NoSql代替
- 模糊查询采用ES代替
- 从高可用角度优化
- 做数据库的读写分离,分布式
- 定期清理不用的数据,定时进行碎片整理
- 配置比较高的mysql并发数
- 使用数据库连接池
- 服务器优化(操作系统和硬件)
优化方案实践学习
常见分库分表方案:https://zhuanlan.zhihu.com/p/137368446
阿里巴巴异构索引表方案:https://www.jianshu.com/p/4318a619a815