MySQL在Having上使用索引吗?
|
我的查询的一部分看起来像:
HAVING date > \'2011-04-13 04:28:03\'
将date变量编入索引,这对查询有影响吗?
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
没有找到相关结果
已邀请:
3 个回复
马口
惜堡沁戚
该计数由您的查询计算。您的情况未将其编入索引。您可以将having子句更改为where子句。
旗低饶彤