高效分页

如何优化Mysql千万级快速分页

一笑奈何 提交于 2019-12-07 09:34:13
看例子: 数 据表 collect ( id, title ,info ,vtype) 就这4个字段,其中 title 用定长,info 用text, id 是逐渐,vtype是tinyint,vtype是索引。这是一个基本的新闻系统的简单模型。现在往里面填充数据,填充10万篇新闻。 最后collect 为 10万条记录,数据库表占用硬盘1.6G。OK ,看下面这条sql语句: select id,title from collect limit 1000,10; 很快;基本上0.01秒就OK,再看下面的 select id,title from collect limit 90000,10; 从9万条开始分页,结果? 8-9秒完成,my god 哪出问题了????其实要优化这条数据,网上找得到答案。看下面一条语句: select id from collect order by id limit 90000,10; 很快,0.04秒就OK。 为什么?因为用了id主键做索引当然快。网上的改法是: select id,title from collect where id>=(select id from collect order by id limit 90000,1) limit 10; 这就是用了id做索引的结果。可是问题复杂那么一点点,就完了。看下面的语句 select