ORACLE索引类别及创建实例:
1.B-Tree 索引
Oracle数据库中最常见的索引类型是b-tree索引,也就是B-树索引,以其同名的计算科学结构命名。CREATE INDEX语句时,默认就是在创建b-tree索引。没有特别规定可用于任何情况。
u创建B-Tree索引
ucreate index idx_itpux_member_name on test_table(name) tablespace testTable;
2.联合索引
对多个字段同时建立的索引(有顺序,ABC,ACB是完全不同的两种联合索引。)
create index idx1_itpux_yg on test_table(name,dept,salary);
3.位图索引
位图索引特定于该列只有几个枚举值的情况,比如性别字段,标示字段比如只有0和1的情况。
ucreate bitmap index idx_itpux_member_sex_age on test_table(sex,age);
4.函数索引
比如经常对某个字段做查询的时候是带函数操作的,那么此时建一个函数索引就有价值了。
○create index idx2_itpux_member_joindate on test_table(to_char(joindate,'yyyymmdd'));
5.反转索引
暂不涉及,使用较少
注意点:
一.避免在索引列上使用 NOT (!=、<>)
二.避免在索引列上使用计算
三.避免在索引列上使用 IS NULL 和 IS NOT NULL
四.注意通配符%的影响
五.避免改变索引列的类型
六.索引在什么情况下效果不好
七.用>=替代>
八.使用索引来避免排序
九.如果 where 子句出现 OR 操作符,建议使用 and 来处理
十 . 单独引用某个条件,条件请用索引列
十一.注意 WHERE 子句中的连接顺序
十二.SELECT 子句中避免使用'*'
十三.用 EXISTS 替换 DISTINCT
十四.用 UNION-ALL 替换 UNION ( 如果有可能的话)
十五.使用 Where 替代 Having(如果可以的话)
十六.通常来说,如果语句能够避免子查询的使用,就尽量不用子查询。因为子查询的开销是相当昂贵的。
十七.使用 TRUNCATE 代替 DELETE
十八.活用 COMMIT
十九.大对象操作
二十.活用变量