MySQL是否在Having上使用索引?

2024-01-11

我的查询的一部分如下所示:

HAVING date > '2011-04-13 04:28:03'

日期变量被索引了,这对查询有什么影响吗?

EXPLAIN EXTENDED 似乎没有使用索引,但我不知道这是否只是因为我正在测试的数据库中有 4 行。

我的查询:

SELECT AVG(slen) FROM
(
SELECT date, COUNT(id) as slen
FROM table
WHERE product_id = 2830
GROUP BY id
HAVING date > '2011-04-13 04:28:02'
) as T

有几行具有不同的日期值。我想选择日期 > '2011-04-13 04:28:02' 的 ID 组。然后我想要属于一个组的平均行数,没有日期条件.

顺便说一句,查询本身还不起作用。

我的另一个担忧是日期 > '2011-04-13 04:28:02' 是否会使用我的日期列索引。

从这个数据集中:

sid             datelast                product_id
782240551706    2011-04-13 00:51:52     2830
782240551706    2011-04-13 04:05:48     2830
782240551706    2011-04-13 04:28:03     2830
111111111111    2011-04-13 00:50:30     2830

期望的结果:

应选择id为782240551706的组,平均值应为3。

以下查询产生所需的结果:

SELECT AVG(slen) FROM
(
SELECT date, COUNT(id) as slen
FROM table
WHERE product_id = 2830
GROUP BY id
HAVING **max(date)** > '2011-04-13 04:28:02'
) as T

HAVING 与 GROUP BY 结合使用,因此它是一个派生表。我不明白如何使用索引。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL是否在Having上使用索引? 的相关文章

随机推荐