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

128

被折叠的 条评论
为什么被折叠?



