Mr-yun/QueryOptimization

查询优化篇

★ 1Forks 0GitHub ↗Compare

README

优化流程- 开发角度 sql语句优化-第三方优化-索引优化-模型优化-功能修改

运维角度 数据库配置-系统配置-虚拟机配置(如果有)-物理机配置


sql语句优化: 1. 检测sql是否可以拆分 2. 分析sql语句执行计划,是否需要添加索引

第三方优化 添加缓存-如redis,缓存配置数据,缓存前几页数据,缓存下一页数据等 添加ES

优缺点: 使用灵活,增加运营成本

索引优化 可增加查询效率 优缺点:索引自身优缺点

模型优化 模型重构,主要是达到查询减少关联查询 优缺点:影响最大,可最大程度优化

功能修改 优缺点:一击必杀,同时也是伤筋动骨


总结: 提到sql优化,不要动不动就是加索引,索引增加存储负荷,降低写入效率,并不是万灵药. 要具体问题具体分析, 比方说有些可以缓存用户前几页查询,很多时候用户只是点到这个功能看一下,而非真正要进行查询,添加缓存功能可以降低数据库压力,然后还要审核下功能设计是否妥当, 比方之前分页前端需要用到分页总数,然后sql count不是添加索引就能提高效率(关键词搜索就用不了索引进行count),所以出现了由于count长时间无法响应,后面给出方案借鉴百度查询分页方式,并提前缓存其他分页数据,即提高了效率,又解决问题

Contributors

Mr-yun

Issues