在我们的日常开发中,后台列表展示查询涉及相对较为频繁,当数据量上来,检索效率相对较慢,可能的原因
- 涉及联合查询,查询字段未添加索引,导致全表扫描
- 未使用查询条件,未命中索引,全表扫描
- 数据量过大,需要采用分表分区
解决方案
1、没有查询条件时,可以采用主表查询,在循环中单挑匹配的方式命中索引,效率提升显著
2、部分未命中索引的联合查询,可以拆分至遍历查询
3、单表数据过大,应采用分表分区的形式减少单表压力
4、数据量过大时,较后面的分页的查询压力可以通过先limit 1 及 id > xxx的形式来进行通过索引查询优化
以上方案在百万及千万级数据下效率提升显著