搜索了一下,网上说说 is null 操作不会走索引,所以查询速度会比 nvl 要来的慢?但是如果没有索引的话,是不是就是 2 中方式的查询速度就一样了呢?
1
ppyybb 2018-08-22 10:08:32 +08:00 via iPhone
你实践一下就知道了,用 explain 把查询过程弄出来就明白了。往往猜测和实际差异都很大
|
2
fatcheung 2018-08-22 10:23:33 +08:00
函数也不走索引啊。不过我猜是 NVL 效率高。
|
3
bpllzbh 2018-08-22 10:34:36 +08:00
试试 where a > '';
or 和 null 判断都会丢失索引 |
4
xuanbg 2018-08-22 11:19:53 +08:00 1
又是一个被以讹传讹的博客文章毒害的。。。谁说 is null 不走索引的,null 怎么就不能索引?这个不科学。最好还是自己试试看弄清楚比较好。
|
5
weizhen199 2018-08-22 13:23:10 +08:00
oracle 还真不会给 null 索引,一般都是建一个联合索引,第二个索引字段设为常量,或者加个 nvl 做函数 index
|