在工作和面试过程中,我们经常遇到优化SQL的问题,所以本文主要从:设计、中间件、高可用,三个方案,提供给大家一种优化mysql的方案。

常见优化方案

  • 从设计角度优化
    • 服务降级(限流,限定查询范围)
    • 选择正确的存储引擎
    • 建立合适的索引
    • 分库分表(水平分表,垂直分表)
    • 建立异构索引表
    • 限定查询范围
  • 从中间件角度优化
    • 热点数据采用NoSql代替
    • 模糊查询采用ES代替
  • 从高可用角度优化
    • 做数据库的读写分离,分布式
    • 定期清理不用的数据,定时进行碎片整理
    • 配置比较高的mysql并发数
    • 使用数据库连接池
    • 服务器优化(操作系统和硬件)

优化方案实践学习

常见分库分表方案:https://zhuanlan.zhihu.com/p/137368446

阿里巴巴异构索引表方案:https://www.jianshu.com/p/4318a619a815