我正在使用Codeigniter MySQL . 我想打印一个部分中每个类别的记录数 . 我有一个广告表,类别表和节表 . 这是我的代码:
foreach($categories as $category){
$query = $this->db->query(" SELECT count(*) AS total_ads from ads where categoryid = $category->id and ( status = 1 OR status = 3 ) and sectionid = $section->id");
$count_row = $query->row();
$count = $count_row->total_ads;
}
广告总数约为62138(记录) . 但它花了太多时间让服务器响应(大约4秒) . 有没有什么可以加速这段代码,我的意思是改进优化 .
1 回答
尝试在DB中创建新索引:
并将代码更改为:
在变量$ categorysIds中存储格式为'(1,2,3,4,5)'的所有类别ID . 你不需要foreach这个代码 .
UPDATE: 最终代码可能如下: