首页 > 其他 > 详细

如何优化limit

时间:2019-05-17 23:08:12      阅读:136      评论:0      收藏:0      [点我收藏+]

SELECT * FROM table1 LIMIT offset, rows

1.简单查询LIMIT优化

假设表message表中有10万行记录,每次取1000条。

优化前:

          SELECT message.* FROM message LIMIT 0,1000

          SELECT message.* FROM message LIMIT 1000,1000

          SELECT message.* FROM message LIMIT 2000,1000

          ……

         SELECT message.* FROM message LIMIT 998000,1000

         SELECT message.* FROM message LIMIT 999000,1000  

优化后:

           SELECT message.* FROM message WHERE uid>0 LIMIT 1000

           SELECT message.* FROM message WHERE uid>1000 LIMIT 1000

           SELECT message.* FROM message WHERE uid>2000 LIMIT 1000

           ……

           SELECT message.* FROM message WHERE uid>998000 LIMIT 1000

           SELECT message.* FROM message WHERE uid>999000 LIMIT 1000

 

2.复杂查询limit优化

例如,对于下述SQL语句

SELECT timerec FROM message WHERE evttype = 1 AND nodename = ‘node1‘ LIMIT 0,1000

……

SELECT timerec FROM message WHERE evttype = 1 AND nodename = ‘node1‘ LIMIT 999000,1000

……

优化方案:建立临时表(含自增主键)存储数十万行的查询结果,之后用第二节的方法分多次访问临时表、获取数据。

  1. 创建临时表
  2. 插入查询结果到临时表
  3. 分多次查询临时表

 

 

如何优化limit

原文:https://www.cnblogs.com/xcn123/p/10884033.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!