当前位置:首页 > 日记 > 正文

mysql分页原理与高效mysql分页查询语句

mysql分页原理与高效mysql分页查询语句
我习惯在极限100000,20路在mysql分页。我也相信你。但是,为了提高效率,提高分页代码的效率和速度,我们该怎么办呢

第一部分:分页的基本原理:

复制代码代码如下所示:
MySQL解释选择*从ID DESC LIMIT 10000, 20消息顺序
***************** 1。行**************
编号:1
select_type:简单
表:消息
类型:指数
possible_keys:空
关键词:小学
key_len:4
参考:空
行数:10020
额外的:
1行集(0秒)
为了说明上述MySQL声明:10020限制10000,20扫描方式对符合条件的,10000条线走在回归前的最后20行,问题就在这里,如果是限制100000100,扫描100100行,在一个高度并行的应用程序,每个查询需要扫描超过10W,一定的折扣的性能。在文章中,极限性能是没有问题,因为只有N线扫描它也提到。

第二部分:根据雅虎的工程师带来了高效的分页使用MySQL的报告内容提到一个线索延伸:本文实践,网页提供一些线索,如选择或由ID * DESC消息顺序、ID按降序分页,20页,当前第十页。id是最大的1020页条目,最小值是1000,如果我们只提供一个页面,那么下一个页面即跳转(不提供给N页,然后跳转)SQL语句在一个页面中可以:
复制代码代码如下所示:
从ID为1020的ID为20的消息中选择*
在处理下一页时,SQL语句可以是:
复制代码代码如下所示:
SELECT * FROM消息ID<1000订单ID DESC LIMIT 20; / /上一页
不管翻过多少页,每次只扫描20行。

缺点是我们只能提供上一页和下一页之间的链接。但是我们的产品经理喜欢第123456789页和下一页。我该怎么做

如果极限m n,不可避免地,优化效率,只有尽可能的让米小,我们延续之前的线索,或通过ID * DESC消息顺序选择,ID按降序分页,20页,当前是第十页,该页的条目ID的最大值是2519,这最小的2500;

当第十页是SQL如下:
复制代码代码如下所示:
SELECT * FROM tb_goods_info哪里auto_id > = 2500阶的auto_id ASC限制0,20

例如,要跳转到第九页,可以用这种方式编写SQL语句:
复制代码代码如下所示:
SELECT * FROM tb_goods_info哪里auto_id<2500为auto_id DESC LIMIT 0,20

例如,要跳转到第八页,可以用这种方式编写SQL语句:
复制代码代码如下所示:
SELECT * FROM tb_goods_info哪里auto_id<2500为auto_id DESC LIMIT 20,20

例如,要跳转到第七页,可以用这种方式编写SQL语句:
复制代码代码如下所示:
SELECT * FROM tb_goods_info哪里auto_id<2500为auto_id DESC LIMIT 20

跳转到第第十一页:
复制代码代码如下所示:
SELECT * FROM tb_goods_info哪里auto_id > 2519阶的auto_id ASC限制0,20

跳转到第第十二页:
复制代码代码如下所示:
SELECT * FROM tb_goods_info哪里auto_id > 2519阶的auto_id ASC限制20,20

跳转到第第十三页:
复制代码代码如下所示:
SELECT * FROM tb_goods_info哪里auto_id > 2519阶的限制auto_id ASC 20
原理是一样的。它记录当前页id的最大值和最小值,计算跳转页面和当前页之间的相对偏移量。因为页面是相似的,所以偏移量不大,所以m值相对较小,这大大减少了扫描行数。实际上,传统的限制m和n的相对偏移总是第一页。这样的话翻到后面,效率就更差了,上面的方法就没有这个问题了。

注意在SQL语句中,ASC和DESC,如果是ASC的结果,记得要反它当它显示。

它已经在一个表的总60w数据测试,而且效果非常明显

相关文章

Win8无线网络无法连接到如何处理解

Win8无线网络无法连接到如何处理解

解决方案,无线网络,连接到,如何处理,电脑软件,点评:很多朋友会遇到Win8无线网络时,使用无线网络。这个时候怎么做今天,萧边会帮你解决这个问题。 你特别害怕在电脑桌面右下角的wifi连接图标上看到黄色的感叹号吗当你遇到Win8无线网络无法连接…

这是一个缓慢的问题解决win7访问Wi

这是一个缓慢的问题解决win7访问Wi

局域网,这是一个,缓慢,电脑软件,WinXP,点评:有网友在论坛上表示,共享文件从LAN到Windows XP或Windows 2003在win7特别慢。事实上,这个问题已经很长时间了,很多朋友都提出了解决方案。以下的方法是一个相对简单的和简单的解决方案 第一步:修改网…

并且,在这里使用提示并用+留下相关

并且,在这里使用提示并用+留下相关

提示,注释,在这里,电脑软件,请多注意土地的滥用和 下面三段代码绝对不同。 (1) 复制代码代码如下所示: selecta.a1,b.b3 fromaleftjoinb 在b.b2 A2 =。 而A3 = 1。 AndB。B3 = 2 在第一次离开协会是经过过滤的,如果b.b3 =空滤如果相关的结果在…

如何使用命令行输入MySQL特定的操

如何使用命令行输入MySQL特定的操

命令行,输入,如何使用,操作步骤,电脑软件,如何使用命令行进入MySQL最近,我无意看到一个朋友在论坛上提出这样的问题,有网友在这里分享答案。 MySQL到Oracle转换为Oracle数据库的免费软件版本 使用命令行输入MySQL方法: Windows打开该行,开始…

解决Win7或Win8系统的问题,网络配置

解决Win7或Win8系统的问题,网络配置

网络配置,系统,电脑软件,点评:Win7和Win8系统的使用可以见到朋友,有时不能访问的问题,计算机网络图标在右下角的一个小标志的具体表现,我们通常回如果有问题,看看自己的路由器,看看上方的灯是否正常亮,最后重新启动路由器,但结果是上不去网,然后有些…

MySQL提示改变的限制:max_open_file

MySQL提示改变的限制:max_open_file

提示,电脑软件,MySQL,max_open_files,max_connection,Windows系统登录MySQL安装max_open_files:2048:510:764 table_cache max_connections。类似的错误是由于max_connections最大连接数和max_open_files之间的失配和table_cache.reduce的max_…

MySQL中的CHAR和VARCHAR的差异分析

MySQL中的CHAR和VARCHAR的差异分析

差异,电脑软件,MySQL,CHAR,VARCHAR,char和varchar的区别 char(13)的长度是固定的,比如存储需要12个字符空间。 varchar(13)长度可变的如需要存储空间13个字符, 从以上可以看出,char的长度是固定的,而无论多少数据你的商店,他将固定长度。和varcha…

基于mysql存储引擎的深度分析

基于mysql存储引擎的深度分析

存储引擎,深度,电脑软件,mysql,MySQL有多种存储引擎,对于不同的应用程序,您可以为每个表选择合适的存储引擎,这有助于提高MySQL的性能。 创建新闻表新闻: 复制代码代码如下所示: 创建沙盘 ( ` ID ` int不空auto_increment, `名字` varchar(45)空, `内…

在MySQL解析mysqldump工具的基本用

在MySQL解析mysqldump工具的基本用

工具,电脑软件,MySQL,mysqldump,使用MySQL mysqldump工具出口。基本用法是: 壳> mysqldump {选项} { }数据库表 如果不提供任何表,则整个数据库将被导出。 通过执行mysqldump --help选项,你可以通过你的版本就支持表。 注意,如果你跑不快就或选…

mysql模式用法详解

mysql模式用法详解

模式,详解,电脑软件,mysql,一、简要介绍mysql SQL模式 在一般情况下,MySQL服务器可以在不同的SQL模式工作,可以将这些模式,为不同的客户不同的方式。在这种方式中,该应用程序将能够定制服务器操作来满足他们的需求。这种模式定义了SQL语法,MySQ…

教你设计一个大型oracle数据库

教你设计一个大型oracle数据库

数据库,教你,电脑软件,oracle,一、导言 超大型系统的特点是: 1,总用户数超过一百万,有1000万多个,数据库的数据量一般超过1TB; 2,系统必须提供实时响应功能,系统不需要停止运行,系统具有高可用性和可扩展性。 为了达到上述要求,除了需要性能优越的计…

wkssb.exe的过程是怎样的

wkssb.exe的过程是怎样的

的是,过程,是怎样,电脑软件,wkssb,评论:对wkssb.exe工艺简介 进程文件:wkssb或wkssb.exe 过程名称:微软工程组合工具 过程类别:安全风险的过程 英文描述: wkssb.exe是一个应用程序有关的投资组合工具,允许你,它也被称为以下三个方面。 中文参考: …