索引是一个可以提高查询性能的工具,但是很多情况下由于程序员的低级错误,引起索引失效,失效原因主要是以下几种:
①where子句中使用函数,除非建立函数索引不会引起索引失效。
②不匹配的数据类型,oracle的隐士转换将会引起索引失效。
③where子句中使用了IS NULL或者IS NOT NULL,可以创建位图索引来解决这个问题,但是位图索引比较适合基数很少的列,也就是说列中的重复值比较多,例如对于身份证的这些列重复值几乎没有。
什么情况下使用索引:
①列经常被用于where条件中。
②列中有大量的空值。
③数据量很大,只有2-4%的数据被选出来。
④表几乎不被修改
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26101098/viewspace-709841/
,如需转载,请注明出处,否则将追究法律责任。