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

MySQL高效分页解决方案共享

MySQL高效分页解决方案共享
首先,最常见的MySQL分页方法是最常见的:
复制代码代码如下所示:
选择ID DESC LIMIT 0, 10从内容的顺序

在小数据量的情况下,这样的SQL就足够了,唯一需要注意的问题是确保索引被使用。随着数据量的增加,页面的数量将越来越多,下面的页面的SQL也可能类似:
复制代码代码如下所示:
选择ID DESC LIMIT 10000, 10从内容的顺序

总之,后分页越多,极限语句的偏移量越大,速度越慢。
在这一点上,我们可以通过2种方式:
首先,在子查询的分页方法提高了寻呼效率,和浮动的SQL语句如下:
复制代码代码如下所示:
从内容中选择*(从ID中选择id命令)

为什么会这样因为子查询完成指标,而普通的查询是数据文件做。一般来说,索引文件比数据文件更小,运行效率更高。(通过)它是通过解释SQL语句的查询使用索引找到!
复制代码代码如下所示:
我select_type台式possible_keys关键key_len参考行额外
1主要内容范围小学小学4空6264使用在哪里
2子查询内容索引4空27085空主要使用索引

使用子查询的分页方法的效率比单纯的限制更有效的14-20倍。
二、连接分页方法
复制代码代码如下所示:
从内容中选择*作为t1
JOIN (SELECT ID FROM `content` ORDER BY ID desc LIMIT . ($ page-1)* $ PageSize。
在t1.id

经过我的测试,加入分页和查询效率寻呼基本在一个水平上,而消费的时间基本上是相同的。解释SQL语句:
复制代码代码如下所示:
我select_type台式possible_keys关键key_len参考行额外
1主系统空null空null 1
1主要T1范围小学小学4空6264使用在哪里
2使用索引派生的内容索引空主4 null 27085

三、使用found_rows()函数mysql
MySQL found_rows()函数结合sql_calc_found_rows选择得到的两个结果:
1。得到极限的内容
2。排除界限后的所有行
在SELECT语句,它往往是可能的回报与限行数。有时你可能想知道有多少条线如果你没有限制返回的,但你不想执行同样的语句了。然后,包括在选择查询的sql_calc_found_rows选项,然后执行found_rows()。
复制代码代码如下所示:
选择sql_calc_found_rows * tbl_name其中ID > 100限10;
选择found_rows();

sql_calc_found_rows告诉MySQL记录处理SQL的行数,和found_rows()被记录。虽然它也是两声明,但只有一个主要的查询被执行,所以效率比原来高多了。
1。如果你在前面的语句中使用sql_calc_found_rows选项,found_rows()将返回的行数时返回的第一个语句没有限制。
2。如果sql_calc_found_rows选项不用于以前的说法,found_rows()将返回到以前的说法实际上返回的行数。
如果选择sql_calc_found_rows使用MySQL必须计算所有结果集行数。尽管如此,它总是比一个查询,不再使用极限的速度更快,因为结果集返回到客户端的下降。(此外),它既不能带来的结果集返回,但也因为SQL,如喜欢,不需要更多的疲劳。
复制代码代码如下所示:
-注意以下语句中的条件
选择sql_calc_found_rows * tbl_name,名字像% % > 100限10 ID字符串;
选择found_rows();

复制代码代码如下所示:
-上面的陈述相当于下面的陈述,但是性能方面应该是非常非常明显的改进:
select count(*)从哪里tbl_name名字像% %的字符串;
SELECT * FROM tbl_name,名字像% % > 100限10 ID字符串;

相关文章

如何查看和删除Win8/8.1无线网络配

如何查看和删除Win8/8.1无线网络配

无线网络,配置文件,删除,电脑软件,注释:在Windows 8和8.1中,没有网络共享中心。当然,Windows 8还没有完全消除这个功能,或者留给我们一个命令行做一些简单的编辑操作,感兴趣的朋友可以理解它。 在Windows 7中,我们可以管理网络共享中心中的无线网…

Win8如何分区C:Win8系统C如何适当

Win8如何分区C:Win8系统C如何适当

系统,电脑软件,点评:Win8系统C如何适当也没有统一标准,主要根据用户的需求和硬盘磁盘分配的总容量,一般500G就给最好的C分布50g-100g硬盘空间。一个详细的答案,请看这篇文章 最近有人这样一个小小的电脑问题问:Win8;C:多少合适刚买的电脑,只有2个50…

MySQL表维护和更新代码共享

MySQL表维护和更新代码共享

维护,代码,电脑软件,MySQL,更改列的数据类型 {语句} 修改表的修改varchar(30)越南游客; 增加新的栏目 {语句} 更改表访问者添加年龄; 更改表访问者添加第一个int年龄; 更改表访问后添加年龄; 改变列的位置 {语句} 更改表访问后更改; 更改列的名称…

最低配置推荐配置和Windows7

最低配置推荐配置和Windows7

推荐,配置,最低配置,电脑软件,点评:如果你想在计算机上运行Windows7,以下是最低配置,win7推荐配置,感兴趣的朋友可以参考一下。 以下是最低配置,win7推荐配置,你可以根据下面的配置你的电脑升级。…

MySQL错误1577错误解决方法

MySQL错误1577错误解决方法

错误,解决方法,电脑软件,MySQL,今天,MySQL是升级到5.1.31,Navicat打开数据库添加数据,有1577的错误,提示信息: 复制代码如下:错误1577(hy000):因为系统表的事件调度器使用了无法继续。 查看手册(5.4)。mysql_fix_privilege_tables:升级MySQL系统表)。一…

oracle存储过程入门学习基本语法

oracle存储过程入门学习基本语法

学习,基本语法,存储过程,入门,电脑软件,1。基本结构 创建或替换过程存储过程名 ( 参数1, 参数2 )是 变量1整数:= 0; 变量2日期; 开始 结束存储过程名 2.select为声明 选择查询结果存储在变量中的多个列,你可以存储多个变量在同一时间,你必须要有一…

Win8.1无线不连接限制连接或频繁下

Win8.1无线不连接限制连接或频繁下

连接,频繁,现象,电脑软件,点评:Win8.1无线总是出现有限的连接或频繁脱落现象。驱动向导更新驱动程序仍然没有解决问题。在寻找一个好的解决方案之后,我们将再次与大家分享。 在Win8.1发布以来,它已经升级到最新的系统版本。在最近半个月,无线连…

是createcd.exe安全过程它是可能的

是createcd.exe安全过程它是可能的

它是,过程,结束,电脑软件,createcd,点评:createcd.exe是Adaptec / Roxio Easy CD / DVD Creator软件的一部分。它通常是默认安装在启动项,创建在任务栏图标 进程文件:createcd或createcd.exe 进程名称:Createcd 过程类别:安全风险的过程 英文描…

oracle查询优化的基本准则详解

oracle查询优化的基本准则详解

查询优化,详解,基本准则,电脑软件,oracle,1:当进行多表关联时,我们使用WHERE语句最小化单个表的结果集,并用聚合函数聚合结果集,然后与其他表相关联,从而使结果集数据量最小化。 2:当两个表关联时,我们应该考虑使用正确连接的可能性,以提高查询速度…

pgptray是pgptray.exe-使用

pgptray是pgptray.exe-使用

电脑软件,pgptray,exe,点评:pgptray.exe是网络软件PGP加密程序,这是在系统托盘驻留程序 进程文件:pgptray或pgptray.exe 过程名称:网络联营PGP系统托盘应用程序 过程类别:安全风险的过程 英文描述: pgptray.exe安装网络软件和GP是系统盘,系统,它…

win7系统实现内外网同时连接工作和

win7系统实现内外网同时连接工作和

外网,连接,系统实现,在线教程,工作,评论:计算机设置只能连接到内部网,不能访问互联网,所以有用户希望同时连接内部网络和外部网络。他们既可以工作也可以上网。这是个好办法。你可以试着操作它,希望对你有所帮助。 在工作需要许多用户电脑设置…

MySQL为函数创建一个1418错误的解

MySQL为函数创建一个1418错误的解

错误,解决方案,函数,创建一个,电脑软件,复制代码代码如下所示: 错误代码:1418 这个函数没有确定性,没有SQL,也没有读取SQL,或者,它也被称为正确的方法。 (0毫秒) 分析uff1a 根据系统,这个误差可以通过安全设置配置造成的,检查手动log_bin_trust_func…