下载鸥 > 网站下载 > 开发教程 > 帝国CMS

帝国cms怎样高效调用当前栏目推荐信息随机展示

457 2021-03-05 17:21:20

收藏
本文完全针对数据量至少在1万条以上的站点,如果站点数据不足1万条,不管是推荐、相关还是其他随机展示,完全可以用rand()做随机。

但数据量超过1万时,rand()函数非常消耗性能,轻则卡顿,重则卡死。数据量如果超过10万,绝不能在调用数据时用rand()。

那么,帝国cms怎样高效调用大数据站点当前栏目推荐信息随机展示呢?
 

1、取得全部推荐信息ID并随机选取要展示的ID

<?php
    $ecms_bq_sql=sys_ReturnEcmsLoopBq("select id from {$dbtbpre}ecms_$tbname where classid=$GLOBALS[navclassid] and isgood>0 order by id desc",20,24,0);
    while($bqr=$empire->fetch($ecms_bq_sql)){
           $bqsr=sys_ReturnEcmsLoopStext($bqr);
           $randids[] = $bqr[id];
    }
    shuffle($randids);
    $randids=array_slice($randids,0,10);
    $randids=implode(',',$randids);
?>
以上php源码主要目的在于获取当前栏目全部推荐信息,并随机取10条,与rand()相比免去了mysql循环查库并随机的过程,效率高之不少。

如果网站数据量很大,例如超过10万,则上方SQL命令需要进行一定程度的限制(会导致不是完全随机),否则同样会导致速度慢。
 

2、调用指定的随机ID做展示

[e:loop={"SELECT titleurl,title from [!db.pre!]ecms_news where id in ($randids) LIMIT 10",10,24,0}]
<li><a href="<?=$bqr[titleurl]?>" target="_blank" title="<?=$bqr[title]?>"><?=$bqr[title]?></a></li>
[/e:loop]

通过这样的方式,我们就可以实现高效调用推荐信息了,尤其是百万、千万级数据量的站点,千万不要用rand()。虽然简单,却损耗了超过300%的性能。

在前面的文章中,我们介绍了帝国CMS做百万、千万级别数据库的网站的相关信息,而一个千万级数据的站点要用到随机,是肯定不能用rand()的。

本文地址:https://xzo.com.cn/develop/empire/662.html

有帮助,很赞!

信息来源:下载鸥
导出教程 下载word版教程
发表评论 共有条评论
  • 隐藏的大佬 2021-05-11 04:28:11评论 #沙发#

    牛逼!网上那么多随机调用方案都长一个样,但根本就不合理,明眼人一看就懂。这个方案我虽然不是很理解原理,但确实很高效,而且数据也没有问题!感谢大佬无私分享!

关于帝国CMS


帝国cms是一款功能极为强大的cms程序,性能强悍、安全性高,可轻松支持10万数据,高级开发人员可制作出能容纳千万数据量的网站,是国内最出色的开源cms程序之一,推荐企业用户使用

当前最新版本为7.5,8.0版本即将上线,新版本的核心优化点在于多终端的适配。

推荐帝国CMS开发教程
帝国CMS的下载地址怎样设置点击进入下载页而不弹小窗口
帝国CMS的下载地址怎样设置点击进入下载页而不弹小窗口

帝国cms默认的下载地址是点击后弹窗一个小窗口,用户体验度并不好,但我们可以...

13 741
帝国cms博客怎样将发布时间设置为秒/分钟/小时/天/个月前?
帝国cms博客怎样将发布时间设置为秒/分钟/小时/天/个月前?

最近发现想要用帝国CMS开发博客的客户越来越多,但帝国cms本身更多的是支持企...

7 896
帝国cms怎样展示会员总数与最新注册的会员名称?
帝国cms怎样展示会员总数与最新注册的会员名称?

如果网站会员数量较多,展示会员总数与最新注册会员名可以有效提升用户留存。...

3 389
有办法将多个帝国CMS网站会员系统数据库进行整合和同步吗?
有办法将多个帝国CMS网站会员系统数据库进行整合和同步吗?

如果能将手里的资源合并,会员渠道打通,则用起来更加舒服。而帝国CMS自带的会...

3 496
帝国cms怎样去掉面包屑导航里的隐藏栏目
帝国cms怎样去掉面包屑导航里的隐藏栏目

帝国cms有隐藏栏目的功能,但隐藏栏目的文章如果展示,面包屑导航里会带上被隐...

1 600
帝国cms生成效率低速度很慢怎么办?
帝国cms生成效率低速度很慢怎么办?

今天有客户联系鸥哥,说网上买的帝国cms模板生成效率很低。网站数据只有5万条...

22 2568
帝国cms默认评论表情添加修改调用与删除
帝国cms默认评论表情添加修改调用与删除

帝国cms评论中默认的表情包是QQ表情,默认显示10个,可以添加可以修改,本文详细...

0 363
帝国cms把自己ip禁止访问了怎么办?
帝国cms把自己ip禁止访问了怎么办?

帝国cms有禁止ip访问的功能,但如果不小心禁止了自己的ip,或是操作失误导致所...

0 676
推荐插件
帝国cms在线考试系统模板插件
帝国cms在线考试系统模板插件

一直没看到好用的帝国cms在线考试插件,所以自己开发了一款。在线考试插件用...

0 1219
帝国cms多栏目多数据表自动审核推送插件
帝国cms多栏目多数据表自动审核推送插件

本插件基于帝国cms帝国cms每日自动审核插件,在自动审核指定条数信息的基础上...

0 850
帝国cms百度文字识别ocr接口对接插件
帝国cms百度文字识别ocr接口对接插件

许多网站会做一些小功能小插件给客户使用以增强用户黏性,比如图片转文字,这种...

0 412
帝国CMS内网用户静态站点文章访客统计插件
帝国CMS内网用户静态站点文章访客统计插件

本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...

0 496
帝国cms智能自动审核按星期几审核指定栏目带推送插件
帝国cms智能自动审核按星期几审核指定栏目带推送插件

采集站的必备资源是自动审核,要做到日收录也离不开定时发布。而本插件的自动...

0 1199
帝国cms访问统计ip地址链接与封禁插件下载
帝国cms访问统计ip地址链接与封禁插件下载

下载鸥开发了这款帝国cms封禁ip插件,自动记录访问情况,让我们可以更快的识别...

0 936
帝国cms批量添加后台用户插件
帝国cms批量添加后台用户插件

使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...

0 664
帝国cms纳米数据接口(足球比赛中最新数据)
帝国cms纳米数据接口(足球比赛中最新数据)

帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...

0 284
客服QQ:341553759
扫码咨询 常见问题 >
官方交流群:90432500
点击加入