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

MySQL分页性能探索

MySQL分页性能探索
几种常见的分页方法:

1。这样的自动扶梯

自动扶梯的方式通常在前一页/下一页提供两种导航方式。有些产品甚至没有提供前一页的功能。它们只提供了一种更为丰富的方式,并且有更多的方法自动加载下拉列表,这可以推广到自动扶梯技术中。

自动扶梯在技术实现上简单有效,从当前页面最后一页的结尾可以得到一个页面,可能与SQL类似。
SELECT * fromlist_tablewhereid > offset_id极限n;
1。电梯模式

另一种方式的数据采集产品中显示为一个确切的翻页,如1,2,3…n,也可以通过在导航用户进入N页。电梯模式应用在国内大部分的场景,但电梯的相对成本是比较高的技术实现。

在MySQL数据库中,通常提到的树通常是B+树的存储引擎的实现。

当使用电梯模式时,当用户指定转到N页时,没有直接的方法来处理位置,但从一楼算起,扫描到计数*页,数据才真正开始,所以效率不高。

传统寻呼技术(电梯方法)

首先,前端需要传递给您的分页实体,以及查询条件。
/分页实体
structfinancedcpage {
1:I32 / /页面大小为
2:I32 PageIndex / /当前页
}
然后,您需要将查询总数返回到前端;
selectcount(*)frommy_tablewherex = Y orderbyid;
然后将指定页条的数量返回到前端。
SELECT * frommy_tablewherex = Y orderbydate_collimit(页索引- 1)*大小PageSize;
上述两个SQL语句的结果需要返回到前端分页实体,以及一个单页结果集。
/分页实体
structfinancedcpage {
1:I32 / /页面大小为
2:I32 PageIndex / /当前页
3:pagetotal I32, / /总页数
4:I32 totalrecod / /总人数
}
传统的查询方法,每个请求的变化只页索引值,即极限偏移,Num偏移

如极限、极限limit10000,10;10;;

上述更改将导致每个查询执行时间的偏差。偏移值越长,它将占用的时间越长。例如,limit10000,10需要读取10010数据获取数据10。

优化方法

按照传统方法,我们知道效率的关键在于程序遍历了许多不需要的数据,关键是从这里开始。

如果不用电梯的话,可以采用自动扶梯的方式来提高性能。

但在大多数情况下,电梯更能满足用户的需要,所以我们需要找到另一种方式来优化电梯的形式。

基于传统方法的优化

上面提到的优化方法,或者是很难满足用户的需求,或者是太复杂的实现,所以如果数据量不是特别大,比如一亿的数据优化方法,其实没有必要使用上面的。

传统的方法已经得到了足够的应用,但传统的方法也可能需要优化:

OrderBy优化
SELECT * frompa_dc_floworderbysubject_codedesclimit100000,5
在这句话中,orderby关键字被使用,那么它是什么是非常重要的。如果你正在订购自增ID,那么这个句子就不需要优化了。如果它被索引或者甚至索引,它需要被优化。

首先,你必须确保它是一个索引,否则它会很慢。如果他被索引了,但不是像自加ID那样被命令,那么把它改写成下面的语句。
SELECT * frompa_dc_flowinnerjoin(selectidfrompa_dc_floworderbysubject_codedesclimit100000,5)aspa_dc_flow_idusing(ID);
下面是两个sql的说明

从图中可以看出,第二SQL可以清除大量页面。

事实上,这涉及到秩序的优化,和subject_code指数不在第一次使用SQL。如果你改变了选择subject_code…使用索引。以下是由顺序的优化。

按顺序排列的字段,如果你想去索引,你必须在字段的条件下建立一个字段的复合索引!如果你想去的orcerby指数领域后,并在现场条件或{在这里建立一个综合指数综合指数的建立,需要注意列的顺序综合指数(为场,以场),以满足以下原则。原因是顺序和字段在什么情况下!或者它应该被引用在条件本身!

表asubject_code是普通场建在它的一个指标,和ID是一个自我提高的关键。
SELECT * fromaorderbysubject_code / /不是索引
selectidfromaorderbysubject_code / /可以索引
selectsubject_codefromaorderbysubject_code / /可以索引
SELECT * fromawheresubject_code = XX orderbysubject_code / /可以索引
它指的是按顺序避免使用文件系统排序,或将订单字段带到选择,或按字段顺序出现在条件下,或生成订单索引字段和条件字段复合索引。

第二SQL是二方式使用指标的巧妙运用。选择ID从订单bysubject_code,这样

数优化

当数据量很大时,它实际上可以输出总的近似数据。使用解释语句,他并不实际执行SQL,而是估算。

总结

以上是萧边介绍给你的MySQL分页性能的探索,希望对你有帮助,如果您有任何问题,请给我留言,萧边会及时给您回复。谢谢您支持网站。

相关文章

JS使用tofixed与round处理数据四舍

JS使用tofixed与round处理数据四舍

四舍五入,数据,区别,电脑软件,JS,1 、tofixed方法  toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。例如将数据Num保留2位小数,则表示为:toFixed(Num);但是其四舍五入的规则与数学中的规则不同,使用的是银行家舍入规则,银行家舍入:…

基于Bootstrap模态对话框只加载一

基于Bootstrap模态对话框只加载一

模态,对话框,数据,加载,解决方法,摘要: 前端框架 Bootstrap 的模态对话框,可以使用 remote 选项指定一个 URL,这样对话框在第一次弹出的时候就会自动从这个地址加载数据到 .modal-body 中,但是它只会加载一次,不过通过在事件中调用 removeData(…

让你的IIS无懈可击

让你的IIS无懈可击

无懈可击,电脑软件,IIS,如果你的电脑新安装了NT4/Win2000以后,并不是说就可以直接用来作Internet服务器了。尽管微软的补丁打了一大堆,但还是有些漏洞。现在我们就简单的谈一下如何使用IIS建立一个高安全性能的服务器。一、 以Windows NT的安…

Yii框架连接mongodb数据库的代码

Yii框架连接mongodb数据库的代码

数据库,连接,框架,代码,电脑软件,yii2框架是yii的升级版本,本文我们分别讲解在yii框架中如何连接数据库mongodb。在文件夹common/config/main_local.php中加入如下代码:<?phpreturn ['components' => ['mongodb' => ['class' => 'yii…

浅谈oracle的SCN机制

浅谈oracle的SCN机制

机制,浅谈,电脑软件,SCN,oracle,作为oracle中的一种重要机制,SCN(系统更改号)在数据恢复、数据保护、数据流复制、RAC节点间的同步等方面起着重要的作用,了解SCN的运行机制有助于您更好地理解上述功能。 在理解SCN之前,让我们看看Oracle事务中的…

Node.js v8.0.0正式发布!看看带来了

Node.js v8.0.0正式发布!看看带来了

新特性,带来了,正式发布,电脑软件,js,前言Node.js于5月30号在其官方博客上发布了Node.js v8.0.0。这一版本将成为当前的长期维护版本,从2017年10月开始到2019年12月31号。而Node.js v6.0.0将会在2018年4月进入维护模式,并于2019年4月结束。最…

简要描述redis和MySQL之间的差异

简要描述redis和MySQL之间的差异

描述,简要,差异,电脑软件,redis,我们知道MySQL是持久存储。它存储在磁盘中。如果检索,它将涉及某些IO。为了解决这一瓶颈,缓存的出现,例如,现在最常用的缓存(MC)。首先,用户访问的MC,如果不打,去mysql,然后像内存和硬盘,拷贝数据到MC的一部分。 两redi…

H5基于iScroll实现下拉刷新和上拉

H5基于iScroll实现下拉刷新和上拉

上拉加载更多,下拉刷新,电脑软件,iScroll,前言 前一段有个手机端的项目需要用到下拉刷新和上拉加载更多的效果,脑海里第一反映就是微博那种效果,刚开始的理解有些偏差,以为下拉也是追加数据,上拉也是追加数据,后请教同事后发现其实下拉只是…

使用store来优化React组件的方法

使用store来优化React组件的方法

组件,方法,优化,电脑软件,store,?在使用 React 编写组件的时候,我们常常会碰到两个不同的组件之间需要共享状态情况,而通常的做法就是提升状态到父组件。但是这样做会有一个问题,就是尽管只有两个组件需要这个状态,但是因为把状态提到了父组件,…

总结PHP中数值计算的注意事项

总结PHP中数值计算的注意事项

数值计算,注意事项,电脑软件,PHP,一:四舍五入1.round — 对浮点数进行四舍五入float round ( float $val [, int $precision ] )2:floor — 舍去法取整(向下取整)float floor ( float $value )3.ceil — 进一法取整(向上取整)float ceil ( fl…

word2010中如何制作目录word2010制

word2010中如何制作目录word2010制

步骤,方法,目录,电脑软件,strong,  大家写文章有时需要写目录,而这又是很繁琐的,尤其是对于写论文,目录必须要有,那么下面就由小编给大家分享下word2010制作目录的技巧,希望能帮助到您。word2010制作目录的步骤步骤一:word2010制作目录的步骤图…

基于原生js运动方式关键点的总结 |

基于原生js运动方式关键点的总结 |

运动,推荐,原生,关键,方式,主要方法:定时器的运用 setInterval(funnction(){},30);为了避免最后时刻速度即将停止时的误差,可以采用下面的方法:if(iSpeed<1)//速度足够小的时候,让速度直接为0,避免速度的波动{iSpeed = 0;}绝对值的运用(主要运用于…