浏览 3201 次
锁定老帖子 主题:SQL语句索引不能使用的一些情况
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-17
最后修改:2009-04-17
看看下面这颗树,就知道索引用不了的原因了 a ab ad abc adm abcd admn 1. not 用不了索引 2. <> 用不了索引 3. 与null值比较用不了索引 4. like , select * from emp where ename like 'luo%' --能用上 select * from emp where ename like '%dai' --不能 5. 查询字段使用了函数 select * from emp where to_char(reg_date,'yyyy')='2009' 当然,还包括了||连接符,对查询字段做运算等,如: where age+1=30 解决办法,使用FBI(基于函数的索引) 6. 多个字段建立组合索引 如对班号,姓名建立索引,并且班号在前 where class_no='200105302' and stu_name= '罗某' --可以用索引 where class_no='200105302' --可以 where stu_name='罗某' --不可以 原因和like类似 7. 注意数据类型隐式转换的问题 如service_type字段,数据库表里varchar2类型,但是像下面这样写 where service_type=82 --用不了,隐式类型转换 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-05-11
不错,很有价值的介绍。其中的隐式类型转换
|
|
返回顶楼 | |