如上所示的一个sql查询,在hourflag字段已经加了索引的情况下 ,仍然使用的是ALL扫描全表
查资料得出原因是因为mysql优化器认为走全表扫描更快
那么此时就需要告诉优化器,强制使用XXX索引,可以增快查询速度,
此时把sql给改成
explain
SELECT
city_name,
hourflag,
eletricflag
FROM
t_eletric_segment_info
force index(index_hourflag)
WHERE
hourflag >= '2019032600'
AND
hourflag <= '2019040123'
关键就是where前面的这个 force index(index_hourflag)
此时可以看到,索引生效,查询速度快了5倍