2. 索引包括列索引,函数索引和复合索引。
列索引:create index idx_col on tbl1(col1) 函数索引:create index idx_fn on tbl1(upper(col1)) 复合索引:create index idx_com on tbl1(col1,col2)
注:复合索引的列顺序很重要,一般最常用的列放在最前面
3. 索引扫描方式
A.index range scan
B.index full scan
C.index fast full scan(自左向右有序扫描,而index full scan是无序扫描)
D.index skip scan
4. 强制利用索引查询的SQL:hint
select /*+ index(table_name index_name) */ * from table_name where ...
注:以注释的方式启用索引,即使语法有错误,也不会影响查询
5. 利用索引主要是为了提高查询效率,但是也不是绝对的
当查询的数据占总数据的比重小的时候,利用索引会提高查询效率
当查询的数据占总数据的比重很大的时候,利用索引反而会降低效率
另外,有索引虽然会提高查询效率,但同时会降低数据变更的效率,
因为在变更数据的同时,要维护索引信息(即还要变更索引信息)。
6. 索引列上不能用表达式(包括函数),否则索引实效。除非创建了函数索引。