使用 GROUP BY 时的 MySQL 慢查询

米奇

我正在使用 2 个表将包裹连接到运输:

包裹

CREATE TABLE `packages` (
  `package` int(11) NOT NULL,
  `shipping` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

ALTER TABLE `packages`
  ADD PRIMARY KEY (`package`,`shipping`);
COMMIT;

航运

CREATE TABLE `shippings` (
  `id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

ALTER TABLE `shippings`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `shippings`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;COMMIT;

问题是当我尝试将包裹加入运输和 GROUP BY 时,例如用于计算每次运输中的包裹:

SELECT s.id,COUNT(*) packages
FROM shippings s
INNER JOIN packages p ON s.id=p.shipping
GROUP BY s.id

使用 5K 运输和 10K 包裹记录查询需要 10 多秒才能执行,也许我缺少一些键或索引?

蜗牛所以

您可能希望为packages.shipping 添加索引。您拥有的主键索引不会在查询中使用,因为它将包作为第一级。

或者,您可以更改包表中主键列的顺序,但这取决于其他查询使用该表的内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL中使用GROUP BY的子查询非常慢

来自分类Dev

使用where子句时,mysql select查询非常慢

来自分类Dev

使用 Order By 时 MySQL 查询变得非常慢

来自分类Dev

MySQL慢查询-使用Filesort

来自分类Dev

使用CONNECT BY LEVEL时查询非常慢

来自分类Dev

使用 Eloquent whereNotIn 时查询非常慢

来自分类Dev

使用OR子句的MySQL JOIN查询非常慢

来自分类Dev

使用OR子句的MySQL JOIN查询非常慢

来自分类Dev

添加“GROUP BY”时MySQL子查询出错

来自分类Dev

使用JOIN / GROUP BY时的MySQL情况

来自分类Dev

MySQL:使用GROUP BY时显示最新值

来自分类Dev

当我在MySQL查询上使用GROUP_CONCAT时出错

来自分类Dev

当我在查询中使用“ GROUP_CONCAT”和“ HAVING”时,如何计算MySQL结果?

来自分类Dev

从2个表中选择时MySQL查询非常慢

来自分类Dev

如何使用MySQL子查询和GROUP BY

来自分类Dev

使用GROUP BY的子查询中的MySQL COUNT

来自分类Dev

MySql GROUP BY 使用文件排序 - 查询优化

来自分类Dev

在 Oracle 中使用 datediff 函数时查询速度慢

来自分类Dev

使用XAMPP 5.6.21启用mysql慢查询日志

来自分类Dev

MySQL 100%CPU +慢查询-无法正确使用索引

来自分类Dev

MySQL慢子查询,我应该使用JOIN吗?

来自分类Dev

即使使用INNER JOIN而不是IN,MySQL查询也非常慢

来自分类Dev

MySQL 100%CPU +慢查询-未正确使用索引

来自分类Dev

慢IN()MySQL查询优化

来自分类Dev

MySQL奇怪的慢查询

来自分类Dev

优化mysql慢查询

来自分类Dev

MySQL非常慢的查询

来自分类Dev

MYSQL(NOT IN)查询非常慢

来自分类Dev

mysql查询连接慢

Related 相关文章

热门标签

归档