【性能优化】models/posts.php 中某处可能引起性能问题的修改

kenw2004
kenw2004 这家伙很懒,还没有设置简介

8 人点赞了该文章 · 2770 浏览

posts.php中有个根据话题进行相关文章的查询,在该话题下文章较多时,可能出现性能问题,如果网站数据量比较小,此问题不会明显影响网站运行。   以下是修改方法:   一、在 public function get_posts_list_by_topic_ids 函数内加一个限制: 在
		array_walk_recursive($topic_ids, 'intval_string');
上增加限制,修改后如下:
		if (count($topic_ids) > 10) {
			shuffle($topic_ids);
			$topic_ids = array_slice($topic_ids, 0, 10);
		}
		array_walk_recursive($topic_ids, 'intval_string');
二、此函数接着往下 在 foreach ($post_ids AS $key => $val) {  后增加限制如下:
		foreach ($post_ids AS $key => $val) {			
			if (count($val) > 10) {
				shuffle($val);
				$val = array_slice($val, 0, 10);
			}
			$post_id_where = "(post_id IN (" . implode(',', $val) . ") AND post_type = '" . $this->quote($key) . "')";
		}
如果不加上述限制,该关联话题有1000条内容,此查询会把1000条全部读取出来。   如果发现其它问题,请跟帖交流!          

发布于 2017-05-26 18:19

免责声明:

本文由 kenw2004 原创发布于 WeCenter ,著作权归作者所有。

登录一下,更多精彩内容等你发现,贡献精彩回答,参与评论互动

登录! 还没有账号?去注册

lampge
2017-06-20 23:41
asdasdasdasdasdasd
lampge
2017-06-20 23:41
232323ewdqwd
落雁沙/mg
2017-06-02 15:07
不知道什么时候能改好么?
kenw2004
2017-05-28 14:15
我这测试有有分页啊
net
2017-05-28 14:06
然而这样修改后会有一个问题,话题文章翻页后没有内容