分页语句的优化

简介:

前言

经常会碰到分页语句的优化,今天在遍历网页的时候又碰到了,想想还是写篇文章,以后碰到类似的问题就可以拿这篇文章回复了。

举个例子

SELECT B FROM hugeTable ORDER BY A LIMIT 10000 OFFSET 500000

需要在ON hugetable (A,B)建索引,同时修改语句

SELECT i.B, k.A
   FROM ( SELECT j.A 
            FROM hugeTable j 
           WHERE j.A >  $value_of_A_from_row_520000 
           LIMIT 10000
        ) k
   JOIN hugetable i
     ON i.A = k.A
  ORDER
     BY k.A

参考:

https://stackoverflow.com/questions/17812794/why-does-mysql-innodb-creating-sort-index-when-unique-index-exists

相关文章
|
10月前
PageHelper分页插件拼接动态排序语句
PageHelper分页插件拼接动态排序语句
299 0
DQL-排序分页
DQL-排序分页
47 0
|
SQL 关系型数据库 MySQL
数据库面试题【十八、优化关联查询&优化子查询&优化LIMIT分页&优化UNION查询&优化WHERE子句】
数据库面试题【十八、优化关联查询&优化子查询&优化LIMIT分页&优化UNION查询&优化WHERE子句】
175 0
|
SQL 算法 测试技术
100w条记录分页,可以有多快?—— DataReader分页与SQL语句分页的对比测试(在线演示)
  上周看到了两篇关于DataReader分页的帖子,帖子的观点都是可以是用DataReader来分页,而且效率还不错。     根据我的分页经历来看,很难理解DataReader分页怎么就快了呢?理论上就不说了,直接用测试说话。
1142 0
|
SQL 算法 测试技术
分页解决方案 之 分页算法——Pager_SQL的思路和使用方法
      分页算法(也就是分页读取数据的时候使用的select 语句)面临两大难题:一个是不同的数据库使用的分页算法是不一样的(比如SQL Server 2000可以使用Max、表变量、颠倒Top,SQL Server 2005可以使用Row_Number,MySql可以使用limit ,Orcale可以使用ROWNUM等);另一个是,不同的分页需求,可以采用的分页算法也是不一样的(比如单字段排序和多字段排序)。
1099 0
|
SQL 算法 数据库
分页解决方案 之 分页算法——Pager_SQL的详细使用方法和注意事项
      上一次有点匆忙,如何使用介绍的不是太清楚,而且这两天有改掉了几个bug,所以这次呢详细说一下,然后更新一下代码和demo。       源代码和demo的下载:http://www.cnblogs.com/jyk/archive/2008/07/29/1255891.html                      JYK.Controls.Pager.QuickPagerSQL PagerSQL = new QuickPagerSQL();            //设置保存属性的位置。
955 0
|
SQL 算法 关系型数据库
MySQL 分页优化中的 “ INNER JOIN方式优化分页算法 ” 到底在什么情况下会生效?
最近无意间看到一个 MySQL 分页优化的测试案例,并没有非常具体地说明测试场景的情况下,给出了一种经典的方案。因为现实中很多情况都不是固定不变的,能总结出来通用性的做法或者说是规律,是要考虑非常多的场景的;同时,面对能够达到优化的方式要追究其原因,同样的做法,换了个场景,达不到优化效果的,还要追究其原因。
6841 0