记录一次mysql分页查询优化方案-阿里云开发者社区

开发者社区> 王帅。。。> 正文

记录一次mysql分页查询优化方案

简介:
+关注继续查看



mysql表数据  3467376


SELECT * FROM mmp_coupon_info_detail LIMIT 10,20   #0.021


SELECT * FROM mmp_coupon_info_detail LIMIT 100,20   #0.013


SELECT * FROM mmp_coupon_info_detail LIMIT 1000,20   #0.014


SELECT * FROM mmp_coupon_info_detail LIMIT 10000,20   #0.022


SELECT * FROM mmp_coupon_info_detail LIMIT 400000,20   #0.436


以上分页查询效率还可以。再往下看


   SELECT * FROM mmp_coupon_info_detail LIMIT 3478908,20   #3.733

   当查询最后一页时,效率明显下降



   SELECT id FROM mmp_coupon_info_detail LIMIT 3478908,20  #1.163

   这个是利用了主键索引,所以查询效率比较高


   #利用表的覆盖索引来加速分页查询

SELECT * FROM mmp_coupon_info_detail WHERE id >(SELECT id FROM mmp_coupon_info_detail LIMIT 3478908,1) LIMIT 20  #1.472



SELECT * FROM mmp_coupon_info_detail a JOIN (SELECT id FROM mmp_coupon_info_detail LIMIT 3478908,20) b ON a.id=b.id  #1.555


以上两种方式差不多。









   

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
sqlserver 通用分页存储过程
来源:http://www.jb51.net/article/19936.htm CREATE PROCEDURE commonPagination @columns varchar(500), --要显示的列名,用逗号隔开 @tableName varchar(100), --要查询...
676 0
通过存储过程进行分页查询的SQL示例
--创建人:zengfanlong --创建时间:2014-7-28 10:51:15 --说明:根据公司简写代码获取当前待同步的气瓶档案数据(分页获取) ALTER PROCEDURE [UP_GasBottles_GetSyncData_ByPage] ( @C...
623 0
sql 查询优化小计
    好久没更博了,偷偷的抽时间写一下。     早上开始working的时候,发现一个页面加载很慢,经排查是昨天写的一条联合查询的sql导致的。于是着手优化!     首先想到的是在join的时候,减少表体积之后再进行关联,于是有了下面这种写法: (原sql) a join b on a.
679 0
一次内链子查询优化 2
   ----------------------------------------------------------------------------------------------------------------------| Id  | Op...
622 0
MySql分页查询慢|这里告诉你答案
背景 我们在开发的过程中使用分页是不可避免的,通常情况下我们的做法是使用limit加偏移量:select * from table where column=xxx order by xxx limit 1,20。
2962 0
你会不会用mysql查询近7个月的数据?没有记录默认为空
你会不会用mysql查询近7个月的数据?没有记录默认为空
13 0
11
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载