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分页性能的探索,希望对你有帮助,如果您有任何问题,请给我留言,萧边会及时给您回复。谢谢您支持网站。

tag:性能分页电脑软件mysql

相关内容