首页 / 帖子
分页该怎么优化才行?

MySQL分页的查询如何优化,尤其数据量较大的时候,谢谢!

2个答案
老葛
发布于:2015-01-05 15:23

一般分页查询的SQL写法如下:  

select * from t where sellerid=100 limit 100000,20

普通limit M,N的翻页写法,往往在越往后翻页的过程中速度越慢,原因  

mysql会读取表中的前M+N条数据,M越大,性能就越差:  

优化的写法:  

select t1.* from  t t1,  
   (select id from t  sellerid=100 limit 100000,20) t2  
where t1.id=t2.id;

优化后的翻页写法,先查询翻页中需要的N条数据的主键id,在根据主键id  

回表查询所需要的N条数据,此过程中查询N条数据的主键ID在索引中完成  

注意:需要在t表的sellerid字段上创建索引  

create index ind_sellerid on t(sellerid);  

王斌
发布于:2015-01-24 22:59

   (select id from t  sellerid=100 limit 100000,20) 

这段代码可以吗 看不懂 请教 怎么理解