【发布时间】:2014-05-15 06:11:28
【问题描述】:
我在我的网站上显示图片及其详细信息,但是最近该网站的加载速度非常慢。
最主要的是这个 foreach 循环循环 100 次以在网格中显示 100 个帖子。运行需要 14 秒
foreach($posts as $post) {
$hashtags[] = $this->HashTagsModel->get_hashtags($post["id"]);
$author[] = $this->UserModel->get_user_details($post["user_id"]);
$comment_count[] = $this->CommentModel->get_comments_count($post["id"]);
$is_favourited[] = $this->FavouriteModel->is_favourited($post["id"]);
$is_reposted[] = $this->RepostModel->is_reposted($post["id"]);
$vote_status[] = $this->vote_status($post["id"]);
$comments[] = $this->count_comments($post["id"]);
}
如何以不同的方式执行此操作以提高效率?这在我们的网站数据库变得庞大之前就已经奏效了
任何帮助将不胜感激,
问候,
差点被解雇
【问题讨论】:
-
好吧,如果你已经怀疑数据库增长是原因(你可能就在那里),那么你无法在 php 级别解决这个问题。您必须仔细查看 sql 语句、表,尤其是数据库中的索引定义!因此,我们要帮助您发布您的数据库结构和查询。
-
100 个带有 7(+) 个子查询的帖子应该不会花费太多时间。我建议您逐个检查这 7 个函数中每一个的执行时间。我敢打赌,其中一个会导致大多数时间问题。
标签: php performance codeigniter loops foreach