我有一个MYTABLE
大约有25列的表,其中两列是USERID (integer)
和USERDATETIME (dateTime)
.
我在这两个列上有一个关于此表的索引,USERID
后面是第一列USERDATETIME
.
我想获得每个USERID的最大USERDATETIME.所以:
select USERID,MAX(USERDATETIME) from MYTABLE WHERE USERDATETIME < '2015-10-11' GROUP BY USERID
我希望优化器能够找到每个唯一的USERID
和最大的USERDATETIME
,其中搜索次数等于唯一USERID
s 的数量.而且我希望这是合理的.我在myTable中有2000个用户ID和600万行.但是,实际计划显示索引扫描中有600万行.如果我使用USERDATETIME
/ 的索引USERID
,计划将更改为使用索引搜索,但仍然是600万行.
为什么SQL不会以减少处理行数的方式使用索引?