我有两个表:posts
和 categories
。
posts 表
大约有 360,000 行
。
我只想显示每个类别的第一篇文章,按日期排序并使用分页。
查询:
SELECT * FROM
(SELECT * FROM posts ORDER BY date_post DESC) as temp
GROUP BY id_category ORDER BY date_post DESC
LIMIT $offset, $limit"
该查询加载并显示我的网站大约需要 1 分钟。
我尝试将 MyISAM 更改为 InnoDB 并使用分区,但没有成功。
网站托管的服务器是专用服务器,我相信问题不是它。
大家有什么建议吗?
最佳答案
您可以按如下方式简化查询:
SELECT *
FROM posts
GROUP BY id_category
ORDER BY date_post DESC
LIMIT $offset, $limit
我不确定您想通过子查询来完成什么任务。也不确定是否需要 GROUP BY,但将其留在那里。
关于php - MySQL 使用 GROUP BY 查询太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15505999/