博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何优化limit
阅读量:4445 次
发布时间:2019-06-07

本文共 943 字,大约阅读时间需要 3 分钟。

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. 分多次查询临时表

 

 

转载于:https://www.cnblogs.com/xcn123/p/10884033.html

你可能感兴趣的文章
通过nodeJs的anywhere搭建本地服务器环境
查看>>
code[vs] 3500 快速幂入门
查看>>
架设API的时候会出现的问题
查看>>
深圳scala-meetup-20180902(1)- Monadic 编程风格
查看>>
Akka-CQRS(10)- gRPC on SSL/TLS 安全连接
查看>>
几何 模板
查看>>
谷歌浏览器无法看视频问题
查看>>
公用插件开发-Day2
查看>>
安装rancher以及使用rancher倒入kubernetes集群和添加及管理集群
查看>>
前端基础入门
查看>>
人生新的一页已经翻开
查看>>
第一次迭代心得
查看>>
获取一年的第一天和最后一天
查看>>
Python 的装饰器
查看>>
django实现支付宝支付
查看>>
synchronized同步方法和同步代码块的区别
查看>>
php 语音参考
查看>>
在textarea里实现获取光标位置和选中内容
查看>>
ASP.NET_正则表达式_匹配HTML中的一行或多行
查看>>
实验1-1 Hello World!
查看>>