失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > mysql强制索引查询_MySQL FORCE INDEX 强制索引使用

mysql强制索引查询_MySQL FORCE INDEX 强制索引使用

时间:2022-12-17 14:02:07

相关推荐

mysql强制索引查询_MySQL FORCE INDEX 强制索引使用

强制索引,即指定本次查询使用某个特定的索引,这样就可避免MySQL优化器使用低效的索引。

应用场景

当前需要统计当天用户的充值排行榜,这里就需要统计当天时间每一个独立用户充值的总金额,这里用到的索引是用户id(int类型)以及充值时间(timestamp类型),SQL语句如下:

SELECT userid, SUM(money) AS money FROM `pay` WHERE userid > 100 AND updatetime >= 'xxxx-xx-xx xx:xx:xx' AND updatetime <= 'xxxx-xx-xx xx:xx:xx' GROUP BY userid

上面的语句看似没啥问题,其实的确也没问题,但是就是查询时间太长了,每执行一次都要等很久。问了一下,原来MySQL执行的时候优先使用了int类型的userid这个索引,而userid这个查询只有下界,没有上界,这里面需要查询的数据量就很大了。这个时候就轮到我们的主角FORCE INDEX 出马了,强制MySQL使用updatetime这个索引,语句如下:

SELECT userid, SUM(money) AS money FROM `pay` FORCE INDEX(updatetime) WHERE userid > 100 AND updatetime >= 'xxxx-xx-xx xx:xx:xx' AND updatetime <= 'xxxx-xx-xx xx:xx:xx' GROUP BY userid

试着去执行了一下,果然, 查询速度立马变快了,这里要感谢带我的老司机,是他告诉了我这个方法。老司机果然就是不同凡响,一上来就搞定了,牛逼。

如果觉得《mysql强制索引查询_MySQL FORCE INDEX 强制索引使用》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。