IS NULL用于判断某一列中的值是否为空,当IS NULL作为WHERE条件的时候,查询不会命中该列上的索引(具体执行时还要看优化器的策略)。
-- 1.伪列 + 联合索引,通过加伪列,创建伪联合索引,来使IS NULL命中索引(数据量达到几万时,此索引将不会命中)
CREATE INDEX idx_zzxh ON bhis.mz_fp(zzxh, -1);
-- 2.通过decode函数,对字段进行null变换,形成函数索引(命中率高,但效率一般)
CREATE INDEX idx_zzxh_0 ON bhis.mz_fp(decode(zzxh, null, 0, 1));
-- 3.若目标字段是boolean型,或者少量枚举型,则可以通过bitmap index配合函数索引(命中率高,效率也高)
CREATE bitmap INDEX idx_zzxh ON bhis.mz_fp(decode(zzxh, null, 0, 1));
标签:zzxh,INDEX,NULL,命中,索引,Oracle,null
From: https://www.cnblogs.com/JaxYoun/p/17596841.html