问题:一个 100W 的表查询的时候只展示 10 条但是没有任何的筛选条件 explain 的时候发现扫描了 100W 条!!
相信很多人在工作经常会发生这种情况——查询一张表只展示10条记录但是表里面有100W条数据在没有任何的筛选索引的操作下 explain的时候发现扫描了100W条实际情况我只展示10条 该如何处理?
我这边的处理是选择 id > 0 这时候explain发现扫描的数量少了一半。
希望各路大神路过给点意见
关于 LearnKu
表默认的主键索引,只展示10条数据可以使用limit offset
1,没有用到索引当然全表扫描,解决方案就是建立索引。 2,分页的情况下,当页数越大时,使用
limit offset性能开始下降,id >也是比较好的优化。 3,拆分sql,改变查询思路,mysql5.6后连接mysql带来的时间消耗几乎可以忽略,多次查询有时比一次查询效率更高。只100W数据而已,
limit offset即可,看explain的时间,如果很快无需优化