转自:http://www.dev26.com/bbs/topic/389
最近一直在考虑网站改造的问题,因为我实在受不了来回的折腾hibernate、JPA这些东西了,有学这些的时间我还不如用这时间研究一下SQL,当然也是我个人比较懒,现在就把我收集的关于mysql高交往分页的一些知识点列出来。
先看一下分页的基本原理(我拿的是CSDN那个百万级数据库来测试!):
1
|
SELECT * FROM `csdn` ORDER BY id DESC LIMIT 100000,2000;
|
耗时: 0.813ms
分析:对上面的mysql语句说明:limit 100000,2000的意思扫描满足条件的102000行,扔掉前面的100000行,返回最后的2000行。
问题就在这里,如果是limit 100000,20000,需要扫描120000行,在一个高并发的应用里,每次查询需要扫描超过100000行,性能肯定大打折扣。
在《efficient pagination using mysql》中提出的clue方式。
利用clue方法,给翻页提供一些线索,比如还是SELECT * FROM `csdn` order by id desc,按id降序分页,每页2000条,当前是第50页,当前页条目id最大的是102000,最小的是100000。如果我们只提供上一页、下一页这样的跳转(不提供到第N页的跳转)。
那么在处理上一页的时候SQL语句可以是:
1
|
SELECT * FROM `csdn` WHERE id<=102000 ORDER BY id DESC LIMIT 2000; #上一页
|
耗时:0.015ms
处理下一页的时候SQL语句可以是:
1
|
SELECT * FROM `csdn` WHERE id>102000 ORDER BY id ASC LIMIT 2000; #下一页
|
耗时:0.015ms
这样,不管翻多少页,每次查询只扫描20行。效率大大提高了!
但是,这样分页的缺点是只能提供上一页、下一页的链接形式。
分享到:
相关推荐
NULL 博文链接:https://gaoyu.iteye.com/blog/548717
一,最常见MYSQL最基本的分页方式: 代码如下:select * from content order by id desc limit 0, 10在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的问题就是确保使用了索引。随着数据量的增加,页数会...
MySQL 百万级分页优化(Mysql千万级快速分页),主要解决大数量级的优化
主要为大家详细介绍了Mysql高效分页的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
介绍了高效的mysql分页方法及原理,有需要的朋友可以参考一下
主要介绍了MySQL分页分析原理及提高效率的相关资料,需要的朋友可以参考下
常见的几种分页方式: 1.扶梯方式 扶梯方式在导航上通常只提供上一页/下一页这两种模式,部分产品甚至不提供上一页功能,只提供一种“更多/more”的方式,也有下拉自动加载更多的方式,在技术上都可以归纳成扶梯...
ORACLE和mssql 高效的分页存储过程,均通用,直接调用即可
介绍一个php高效获取数据分页类,PHP MYSQL数据库基本功能,获取序列ID,获取strSql第N条记录中的第N列数据,下标从1开始,获取strSql第N条记录,获取strSql记录集存入数组中。
Descript: ASP分页类,支持access/mssql/mysql/sqlite Contact: QQ:311673 MSN:myehe@msn.com GT:mmyehe@gmail.com WebSite: http://www.yehe.org http://www.showo.com -----------------------------------------...
通过使用MySQL,网站的数据被高效地存储和检索,确保了最佳的性能。此外,使用Tomcat确保网站安全稳定。总体而言,个人网站的源代码是一件复杂而多方面的技术,需要仔细规划和执行,以提供无缝的用户体验。
欢迎使用 PHP MYSQL数据库管理系统-AMS-易用安全高效的MYSQL管理系统。 MYSQL管理系统(AMS) 1.5.0107 更新内容: 1、增加MySQL用户权限管理插件。 (Loc用户反馈: jumpsky) 2、提高数据查询响应速度。(CSDN用户...
分页查询优化:对于大数据量的分页查询,可以使用LIMIT分页,并确保使用适当的索引以提高查询速度。 避免频繁的连接和断开:频繁的连接和断开对数据库性能影响较大,可以使用连接池来管理数据库连接,减少连接开销...
人事工资管理系统,旨在为公司提供一个高效的人事和工资管理系统,主要提供公司管理员工,管理部门,考勤,员工工资等几个功能模块。 员工模块使用分页技术实现展示员工信息,添加员工,删除员工,修改员工信息与...
几种sqlserver2008高效分页sql查询语句 top方案: sql code: select top 10 * from table1 where id not in(select top 开始的位置 id from table1) max: sql code: select top 10 * from table1 whe
从一个MySQL的例子来学习查询语句mysql分页原理和高效率的mysql分页查询语句mysql查询语句通过limit来限制查询的行数mysql优化limit查询语句的5个方法优化MySQL数据库中的查询语句详解整理MySql常用查询语句(23种)...