is null用不用索引?

is null用不用索引?

is null用不用索引?我试着explain是使用索引的。

http://img1.sycdn.imooc.com//climg/5ff40c5909eb5d4611950418.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
大目 2021-01-05 21:23:09

嗨,您好,非常棒的问题哦!

看来是一位学习非常细致的同学哦!

我这里表述有点不够清晰了,不好意思。我的意思是,这条SQL在这里使用is null的时候,是无法使用索引的。


is null本身并不会导致不使用索引。在官方文档里有写:

https://dev.mysql.com/doc/refman/8.0/en/is-null-optimization.html

MySQL can perform the same optimization on col_name IS NULL that it can use for col_name = constant_value. For example, MySQL can use indexes and ranges to search for NULL with IS NULL.


视频里的这条SQL不能使用索引,是因为用来做is null判断的数据都不是空,所以没有使用索引。

  • http://img1.sycdn.imooc.com//climg/60896f17096275ee11520455.jpg

    老师,我这里建了一个表,u,然后name所有字段也都不为null,但是还是走索引了啊

    2021-04-28 22:20:47
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师