Oracle加索引
2016-08-08 20:29
961 查看
创建索引的最终目的:提高数据检索效率。
首先,让我们查看一下scott.emp下有没有索引:
select index_name from all_indexes where table_name='EMP'
结果发现系统给主键是自建索引的:PK_EMP
接着自定义索引列:job和deptno
create index i_job_deptno on emp(job,deptno)
重复第一步,验证是否成功。
如何正确使用索引?
1.如果where子句出现OR操作符或者单独引用deptno列,则索引失效。
select *from emp where job='CLERK' ------走索引
select *from emp where deptno=10 ------不走索引
select *from emp where job='CLERK' and deptno=10 -------走索引
select *from emp where job='CLERK' or deptno=10 -------不走索引
2.避免在索引上使用函数。select *from emp where substr(ename,1,2)='SM' -----失效
3.避免在索引上使用IS NULL/IS NOT NULL。select *from emp where job is null-----失效
4.避免在索引列上使用NOT(!=、<>)。select *from emp where job!='CLERK'-----失效
5.注意通配符%的使用
select *from emp where job like '%CLERK%' ------失效
select *from emp where job like 'CLERK%' ------高效
程序员必备神器,简单实用,工作之余请不要忘记锻炼哦~点击打开链接
首先,让我们查看一下scott.emp下有没有索引:
select index_name from all_indexes where table_name='EMP'
结果发现系统给主键是自建索引的:PK_EMP
接着自定义索引列:job和deptno
create index i_job_deptno on emp(job,deptno)
重复第一步,验证是否成功。
如何正确使用索引?
1.如果where子句出现OR操作符或者单独引用deptno列,则索引失效。
select *from emp where job='CLERK' ------走索引
select *from emp where deptno=10 ------不走索引
select *from emp where job='CLERK' and deptno=10 -------走索引
select *from emp where job='CLERK' or deptno=10 -------不走索引
2.避免在索引上使用函数。select *from emp where substr(ename,1,2)='SM' -----失效
3.避免在索引上使用IS NULL/IS NOT NULL。select *from emp where job is null-----失效
4.避免在索引列上使用NOT(!=、<>)。select *from emp where job!='CLERK'-----失效
5.注意通配符%的使用
select *from emp where job like '%CLERK%' ------失效
select *from emp where job like 'CLERK%' ------高效
程序员必备神器,简单实用,工作之余请不要忘记锻炼哦~点击打开链接
相关文章推荐
- 关于Oracle降序索引的定意及回溯
- 关于Oracle 9i 跳跃式索引扫描(Index Skip Scan)的小测试
- Oracle的选择函数索引实验
- oracle里的常用命令(四):索引
- ORACLE分析表和索引的脚本
- oracle使用了索引但是查询性能没有改善(oracle的索引陷阱)
- Oracle查询指定索引提高查询效率
- oracle使用了索引但是查询性能没有改善(oracle的索引陷阱)
- 创建ORACLE索引
- 在ORACLE里按用户名重建索引的方法
- 创建Oracle的主键反序索引
- Oracle 9i轻松取得建表和索引的DDL语句
- ORACLE库中 大数据量的表 中索引建立的注意事项
- oracle 索引分析
- Oracle建立二进制文件索引的方法
- Oracle 9i轻松取得建表和索引的DDL语句
- 创建oracle的函数式的索引
- Oracle初学者入门指南-索引是干什么用的?
- 建立Oracle中文全文索引步骤举例
- 在ORACLE里按用户名重建索引的方法