QQ泡沫乐园 · 免费提供游戏辅助,破解软件,活动资讯,喜欢记得收藏哦!
综合软件_线报活动_游戏辅助_最新电影_最优质的的辅助分享平台

活用maxmin软件项目实战中

网络 2023-03-02 09:01

“ 心中醒,口中说,纸上作,不从头上习过,皆无用也。”

01

活用 max() min()

软件项目实战中,不可避免的就会遇到分页功能。那么实际分页功能实现中,有什么我们可以应景的操作么?灵活使用min(),max()就能比较粗壮的实现分页功能。

分页功能中,一般都须要2个参数,一个 pageNo,代表恳求的某个页面的页数。一个countNo,代表一个具体某一个页面中,返回的数据条数。

为通用,稳健考虑,countNo会有容许恳求最大值,其他可以让调用方灵活处理。为什么要设定一个页面的最大值呢?肯定是本着恳求效率高效原则考虑。

页面传参数r语言_页面传值有哪些方式_js获取id值传到新页面

现如今,http服务的历时都主要消耗在2个方面:mysql,网络。如果插口让调用方任意传参调用的话,可以试试,countNo传递一个巨大的数字,比如100000。可以测试瞧瞧查询效率,看看mysql恳求时长。

$countNo = min($countNo,20);

这一行代码,就很方便的解决掉,调用方传递大值的场景。

同样的,pageNo,默认会须要指定最小页面数据,不能他人不传递pageNo,就不展示下来数据的。

$pageNo = max($pageNo,1); //假设分页从第一页开始。

另外,入参校准逻辑,不在本篇讨论。

02

LIMIT 优化

分页功能必然涉及到mysql limit。那么大数据量下的 limit 优化就必然要有所考虑。

假如,id是连续的。那么可以使用 between 语法来实现。如果,id不连续,那就有问题,取不到所要数量的数据。我们通过explain来观察两个句子的区别:

rows由之前的500020行,缩减到21行。优化疗效相当显著。

当然,现实场景中,由于各类缘由,id基本上大几率存在不连续情况的。那么这个时侯就须要另一种方式。

js获取id值传到新页面_页面传值有哪些方式_页面传参数r语言

第二种方式,就是,在分页过程中,记录下先前的分页下标。

我们来瞧瞧,采取下标的explain剖析结果

对比来看没有采用下标的,从rows来看,效果很明显。

那么这句

select id,num from table order by id asc limit 500000,20

的执行逻辑是哪些呢?往下看:

从数据表中读取第N条数据添加到数据集中。重复第一步直至 N = 500000 + 20。根据 offset 抛弃上面 500000 条数。返回剩余的 20 条数据。

这个第二步骤,第三步骤问题比较大,找出500000+20数据,然后又抛弃掉500000条数据,做了很大无用功。

最重要,技术优化永无止境。有时候须要业务降低一小丢丢策略,那么也就不会存在哪些其他问题的。

比如,搜索引擎展示数据就最大展示到100页,最大offset也就是 100*10。当然,搜索引擎不是简单的mysql,如果在mysql里面,limit 1000,10也不会有其他太多问题的。

不知道这算不算你们所说的聚类严打。o(* ̄︶ ̄*)o