php - MySQL 使用 GROUP BY 查询太慢

标签 php mysql

我有两个表:postscategoriesposts 表 大约有 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/

相关文章:

c# - 使用 C# 无法连接到 MySQL 服务器,但使用 Workbench 没有问题

mysql - Rails MySQL 主/从将读取和写入发送到主服务器

javascript - Laravel 5 中有 2 个日期选择器,但仅保存最后一个值

PHP/CodeIgniter - 在 __construct() 中设置变量,但它们不能从其他函数访问

php - 在 PHP 中使用实时输出运行进程

mysql - 表中不存在键列

MySQL 在插入外键之前检查父子字段是否匹配

php - 如何正确实现 hash_hmac?

php - 在 Magento 观察器中获取 POST 数据

mysql - 如何在保存到数据库之前调整图像大小?