【发布时间】:2019-01-04 20:18:35
【问题描述】:
我最近在继承的程序中遇到了一个长 SQL 查询,它连接了 8 个表和 3 个视图。使用EXPLAIN,我看到它是 7 个唯一键查找和 4 个非唯一键查找。平均而言,获取 350 行需要 18 秒(有很多原因,这 3 个视图中的每一个都由一个视图组成)然后,我注意到一个 GROUP BY tableone.id 没有任何聚合。我删除了它,现在它可以在几毫秒内运行。
现在令人困惑的部分是,我随后查找了为什么 MySQL 允许在没有聚合函数的情况下使用 GROUP BY 语句,并了解到它实际上是一种优化技术 (Why does MySQL allow "group by" queries WITHOUT aggregate functions?)。
这显然不是我的情况。那为什么呢?什么时候悬空的GROUP BY 是障碍而不是优化器?
【问题讨论】:
标签: mysql sql database group-by query-performance