Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用GROUPBY时,mySQL查询速度非常慢_Mysql_Group By_Query Optimization - Fatal编程技术网

使用GROUPBY时,mySQL查询速度非常慢

使用GROUPBY时,mySQL查询速度非常慢,mysql,group-by,query-optimization,Mysql,Group By,Query Optimization,我在尝试优化使用GROUPBY函数的查询时遇到了一些问题 SELECT COUNT(*) AS count, snapshot_id, date_sent, subject, name FROM snapshots INNER JOIN brands ON snapshots.brand_id = brands.brand_id WHERE snapshots.status = 1 AND brands.status = 1 GROUP BY subject ORDER BY date_sent

我在尝试优化使用GROUPBY函数的查询时遇到了一些问题

SELECT COUNT(*) AS count, snapshot_id, date_sent, subject, name
FROM snapshots
INNER JOIN brands
ON snapshots.brand_id = brands.brand_id
WHERE snapshots.status = 1 AND brands.status = 1
GROUP BY subject
ORDER BY date_sent DESC
LIMIT 10;
两张桌子

[Table: snapshots]
snapshot_id   subject   date_sent   brand_id   status
1             abc       2015-2-1    1          1
2             abc       2015-2-2    1          1
3             xyz       2015-2-3    2          1
4             xyz       2015-2-4    2          1
5             xyz       2015-2-5    3          1

[Table: brands]
brand_id      name      status
1             nike      1
2             adidas    1
3             puma      1
结果:

count   snapshot_id   date_sent   subject   name
2       1             2015-2-1    abc       nike
2       3             2015-2-3    xyz       adidas
1       5             2015-2-5    xyz       puma
没有限制的查询返回70K+条记录。 在没有组的情况下执行时,查询返回时不会出现任何问题。 在按主题分组执行时,查询速度非常慢


非常感谢您的帮助。

您是如何创建表格的?任何索引包括?使用
GROUP BY
子句,数据库必须搜索所有条目-如果您在不使用
GROUP BY
的情况下运行查询,则数据库可能会在您浏览记录时返回记录。最有可能的是索引
ALTER TABLE snapshots ADD KEY(主题、发送日期)
会加快查询速度,如果还没有,显示你的索引和解释结果。“你的聚合和非聚合结果的混合看起来很奇怪。@Mihai,这很有效。”。为将来的参考和我的进步。创建索引时我应该寻找什么?我如何知道索引中应该包括哪些列?WHERE united by AND中所有列的合成索引,GROUP by和ORDER by列的合成索引,按它们出现的顺序排列,前提是它们在同一个表中。有很多东西,了解基数和索引实际上是什么。花些时间阅读那些枯燥的文档并试着理解它。使用解释计划。