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

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条全部读取出来。   如果发现其它问题,请跟帖交流!          

5 个评论

然而这样修改后会有一个问题,话题文章翻页后没有内容
kenw2004

kenw2004 回复 net

我这测试有有分页啊
不知道什么时候能改好么?
232323ewdqwd
lampge

lampge 回复 lampge

asdasdasdasdasdasd

要回复文章请先登录注册