SELECT pid,COUNT(*) AS total FROM `pre_forum_hotreply_member` WHERE tid = 181501 and attitude = 1 GROUP BY pid 如何优化?
时间: 2024-01-12 20:03:32 浏览: 106
可以考虑以下优化方式:
1. 索引优化:为 `pre_forum_hotreply_member` 表中的 `tid` 和 `attitude` 字段分别添加索引,可以加快查询速度。
2. 子查询优化:可以将子查询转换成 JOIN 操作,例如:
```
SELECT pid, COUNT(*) AS total
FROM `pre_forum_hotreply_member` AS a
JOIN (
SELECT pid
FROM `pre_forum_hotreply_member`
WHERE tid = 181501 and attitude = 1
GROUP BY pid
) AS b ON a.pid = b.pid
GROUP BY pid
```
这样可以避免多次查询和排序操作,提高查询效率。
3. 分页查询优化:如果需要进行分页查询,可以使用 LIMIT 关键字限制返回结果的数量,同时尽可能减少查询返回的记录数,以提高查询速度。例如:
```
SELECT pid, COUNT(*) AS total
FROM `pre_forum_hotreply_member`
WHERE tid = 181501 and attitude = 1
GROUP BY pid
LIMIT 0, 10
```
这样可以只返回前 10 条记录,减少查询时间。
以上是一些基本的优化方式,具体优化方案应该根据具体情况来定。
阅读全文