mysql性能优化之order by limit
最近遇到一个慢查询sql,是用来做分页查询的,查询的表字段有一百多个,查询10万数据时间3S+。
通过查看表的设计,发现order by中的数据是建立了索引的,我用查询语句做测试的时候,发现了一个惊人的事情
oh my god,通过explain打开执行过程后,发现,我查询50000开始的20条数据,是有用索引的,但是查询80000开始的20条数据时,没有用到索引,事实见下图,而且可以看到,比较了40多万条数据


所以我就另辟蹊径,采用了inner join的方式通过减少io次数和比较次数,进行优化,可以看到,只比较了80020次