发布于:2022-10-27 15:30 阅读次数:412 作者:云码素材 分类:技术分享 关键词:Emlog
Emlog调用数据库加速显示标签tag缓存优化方法教程
Emlog文章标签缓存改为调用数据库代码挺好,在文章添页添加文章标签的时候发现修复标签缓存问题后,如果emlog的标签数量较大时,程序缓存的标签文件非常大,如果标签有很多甚至有可能达到几十兆,这明显是自己在给服务器施加压力,如果在模板中添加了调用文章标签代码,每次进入文章页或者进入添加了文章标签代码的页面会非常卡,原因就是服务器需要去那个有可能几十兆的标签缓存文件中获取此文章的标签,每次访问服务器都要访问如此之大的文件,普通服务器怎么可能吃得消呢?
站长的解决办法就是将emlog程序自带的从缓存获取文章标签的代码废除,在模板中增加代码来解决,原理就是让大家每访问一个文章时就去数据库中查询一次标签,这样可以大大减少服务器的压力,觉得还是本地缓存调用比较快,但是经过测试证明,还是调用数据库比较快,这点针对国外服务器有着很好的效果,大家不妨试一试。
修改步骤
1、首先找到此文件:根目录/include/lib/cache.php,将以下代码注释掉:
private function mc_logtags() { $query = $this->db->query("SELECT gid FROM " . DB_PREFIX . "blog where type='blog'"); $log_cache_tags = array(); while ($row = $this->db->fetch_array($query)) { $logid = $row['gid']; $tags = array(); $tquery = "SELECT tagname,tid FROM " . DB_PREFIX . "tag WHERE gid LIKE '%,$logid,%' or gid LIKE '%,$logid%' or gid LIKE '%$logid,%' or gid LIKE '$logid'"; $result = $this->db->query($tquery); while ($trow = $this->db->fetch_array($result)) { $trow['tagurl'] = urlencode($trow['tagname']); $trow['tagname'] = htmlspecialchars($trow['tagname']); $trow['tid'] = intval($trow['tid']); $tags[] = $trow; } $log_cache_tags[$logid] = $tags; unset($tags); } $cacheData = serialize($log_cache_tags); $this->cacheWrite($cacheData, 'logtags'); }
2、根目录:模板目录中的文件 /content/templates/模板文件夹名/module.php:
<?php //blog:文章标签 function Tea_blog_tag($blogid){ //调用数据库版标签 $db = MySql::getInstance(); $query = $db->query("SELECT gid FROM ".DB_PREFIX."blog where type='blog' and gid='".$blogid."'"); while($row = $db->fetch_array($query)){ $logid = $row['gid']; $tags = array(); $tquery = "SELECT tagname,tid FROM " . DB_PREFIX . "tag WHERE gid LIKE '%,".$logid.",%' or gid LIKE '%,".$logid."' or gid LIKE '".$logid.",%' or gid LIKE '".$logid."'" ; $result = $db->query($tquery); while ($trow = $db->fetch_array($result)) { $trow['tagurl'] = urlencode($trow['tagname']); $trow['tagname'] = htmlspecialchars($trow['tagname']); $trow['tid'] = intval($trow['tid']); $tags[] = $trow; } } if(!empty($tags)){ foreach ($tags as $value){ echo '<a href="'.Url::tag($value['tagurl']).'" title="'.$value['tagname'].'">'.$value['tagname'].'</a>'; } }else{ echo '<a>无标签</a>'; } } ?>
3、以上工作完成后,在你想要添加文章标签的地方添加代码:
<?php Tea_blog_tag($logid);/*$logid*/?>
我要加群:资源共享的时代,不要再单打独斗!加小编微信号加入群:xnynews(备注:云码素材入群),qq群号:202498279,一起技术学习,资源分享!
免责声明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!
热门标签
推荐模板
Light Year Admin后台模板 v4 iframe版本 基于Bootstrap 4.4.1
2024-10-20 22:57 浏览:24
html清爽ui设计作品集展示网站模板 响应式宣传网页制作代码模板
2024-09-23 10:12 浏览:238
热门文章
2022-05-10 08:48 浏览:30993
2Tik Tok 深田咏美抖音视频100+合集资源免费下载【绿色】
2022-10-31 08:42 浏览:29618
2022-03-27 09:29 浏览:15688
2022-09-11 15:02 浏览:12810
2020-04-13 15:31 浏览:11970
6免费使用chatgpt3种方式 chatgpt国内入口无需梯子
2023-04-23 17:52 浏览:10680
2022-09-08 10:28 浏览:9338
8三个开源的php论坛bbs源码 可自建 圈子 帖子社区网站!
2020-09-15 21:34 浏览:9325
2022-04-13 14:31 浏览:9180
2019-08-28 17:28 浏览:8651