mysql指数计算_MySQL是否使用了指数?

我的查询的一部分看起来像:

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

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

按原样查询,顺便说一下也不行.

我的另一个问题是日期> ‘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一起使用,因此它是派生表.我不知道如何使用索引.

标签:mysql,indexing,aggregate-functions,having

来源: https://codeday.me/bug/20190710/1420042.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值