记录一次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

以上两种方式差不多。

   

时间: 2024-10-26 06:00:42

记录一次mysql分页查询优化方案的相关文章

MySQL优化案例系列-mysql分页优化_Mysql

通常,我们会采用ORDER BY LIMIT start, offset 的方式来进行分页查询.例如下面这个SQL: SELECT * FROM `t1` WHERE ftype=1 ORDER BY id DESC LIMIT 100, 10; 或者像下面这个不带任何条件的分页SQL: SELECT * FROM `t1` ORDER BY id DESC LIMIT 100, 10; 一般而言,分页SQL的耗时随着 start 值的增加而急剧增加,我们来看下面这2个不同起始值的分页SQL执行

海量数据库的查询优化及分页算法方案

分页|数据|数据库|算法|优化 随着"金盾工程"建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种.各部门.与此同时,应用系统体系的核心.系统数据的存放地――数据库也随着实际应用而急剧膨胀,一些大规模的系统,如人口系统的数据甚至超过了1000万条,可谓海量.那么,如何实现快速地从这些超大容量的数据库中提取数据(查询).分析.统计以及提取数据后进行数据分页已成为各地系统管理员和数据库管理员亟待解决的难题. 在以下的文章中,我将以"办公自动化"系

海量数据库的查询优化及分页算法方案_MsSql

海量数据库的查询优化及分页算法方案  原出处不详 摘自:www.21php.com 随着"金盾工程"建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种.各部门.与此同时,应用系统体系的核心.系统数据的存放地――数据库也随着实际应用而急剧膨胀,一些大规模的系统,如人口系统的数据甚至超过了1000万条,可谓海量.那么,如何实现快速地从这些超大容量的数据库中提取数据(查询).分析.统计以及提取数据后进行数据分页已成为各地系统管理员和数据库管理员亟待解决的难题. 在以下

Mysql Limit 分页查询优化详解_Mysql

select * from table LIMIT 5,10; #返回第6-15行数据 select * from table LIMIT 5; #返回前5行 select * from table LIMIT 0,5; #返回前5行 我们来写分页 物理分页 select * from table LIMIT (当前页-1)*每页显示条数,每页显示条数; MySQL之Limit简单优化.md 同样是取90000条后100条记录,传统方式还是改造方式? 传统方式是先取了前90001条记录,取其中最

海量数据库的查询优化及分页算法方案集合2/2_数据库其它

FROM publish  WHERE (id NOT IN  (SELECT TOP n-1 id   FROM publish))  id 为publish 表的关键字  我当时看到这篇文章的时候,真的是精神为之一振,觉得思路非常得好.等到后来,我在作办公自动化系统(ASP.NET+ C#+SQL SERVER)的时候,忽然想起了这篇文章,我想如果把这个语句改造一下,这就可能是一个非常好的分页存储过程.于是我就满网上找这篇文章,没想到,文章还没找到,却找到了一篇根据此语句写的一个分页存储过程

海量数据库的查询优化及分页算法方案[转]

海量数据库的 查询优化及分页算法方案   随着"金盾工程"建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种.各部门.与此同时,应用系统体系的核心.系统数据的存放地――数据库也随着实际应用而急剧膨胀,一些大规模的系统,如人口系统的数据甚至超过了1000万条,可谓海量.那么,如何实现快速地从这些超大容量的数据库中提取数据(查询).分析.统计以及提取数据后进行数据分页已成为各地系统管理员和数据库管理员亟待解决的难题. 在以下的文章中,我将以"办公自动化&q

mysql分页与分页性能查询优化

一,最常见MYSQL最基本的分页方式:  代码如下 复制代码 select * from content order by id desc limit 0, 10 在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的问题就是确保使用了索引.随着数据量的增加,页数会越来越多,查看后几页的SQL就可能类似:  代码如下 复制代码 select * from content order by id desc limit 10000, 10 一言以蔽之,就是越往后分页,LIMIT语句的偏移量就会越

mysql 分页优化解析_Mysql

如果你的数据量有几十万条,用户又搜索一些很通俗的词,然后要依次读最后几页重温旧梦.mysql该很悲壮的不停操作硬盘. 所以,可以试着让mysql也存储分页,当然要程序配合.(这里只是提出一个设想,欢迎大家一起讨论) ASP的分页:在ASP系统中有Recordset对象来实现分页,但是大量数据放在内存中,而且不知道什么时候才失效(请ASP高手指点). SQL数据库分页:用存储过程+游标方式分页,具体实现原理不是很清楚,设想如果用一次查询就得到需要的结果,或者是id集,需要后续页时只要按照结果中的I

mysql 性能优化方案

网上有不少mysql 性能优化方案,不过,mysql的优化同sql server相比,更为麻烦与负责,同样的设置,在不同的环境下 ,由于内存,访问量,读写频率,数据差异等等情况,可能会出现不同的结果,因此简单地根据某个给出方案来配置mysql是行不通的,最好能使用status信息对mysql进行具体的优化,网上找了一篇文章,分页分得乱七八糟的,只能转到博客. mysql> show global status; 可以列出mysql服务器运行各种状态值,另外,查询mysql服务器配置信息语句: m