总结完Oracle数据库的增删改查的操作之后,基本上涵盖了数据库基本应用。数据库的索引和分区也是一个重要的技术点,下面简单说一下数据库的索引和分区知识。
索引
创建数据库索引可以优化和提高数据库查询效率和性能。创建索引就是对某些特定列中的数据进行排序或归类,生成独立的索引表。
生成索引
create [unique]|[bitmap] index index_name on table_name(column1,column2...|[express]) [tablespace tab_name] --tablespace表示索引存储的表空间 [pctfree n1] --索引块的空闲空间n1 [storage --存储块的空间 ( initial 64K --初始64k next 1M minextents 1 maxextents unlimited )];
- UNIQUE表示唯一索引、BITMAP位图索引。
- 索引的类别:
- b-tree索引:Oracle数据中最常见的索引,没有特殊的应用要求
- bitmap位图索引:应用于列数据只有几个枚举值的情况
- 函数索引:应用于对某个字段做查询时经常带函数操作
- hash索引:使用hash索引必须使用hash集群
删除索引
drop index index_name;
重命名索引
alter index index_old rename to index_new;
合并索引
alter index index_name coalesce;
重构索引
alter index index_name rebuild;
查询索引
select t.INDEX_NAME, --索引名字 t.index_type, --索引类型 t.TABLESPACE_NAME, --表空间 t.status, --状态 t.UNIQUENESS --是否唯一索引 from all_indexes T where t.INDEX_NAME='index_name';
分区:1、可以改善大型表的查询性能;2、更方便的管理数据表
创建分区
create table 表名 ( 列名1 类型1, 列名2 类型2, 列名3 类型3 ) partition by range(列名)( partition 分区名1 判断子句1 TABLESPACE 表空间1, partition 分区名2 判断子句2 TABLESPACE 表空间2, partition 分区名3 判断子句3 TABLESPACE 表空间3 );
- 上述是按照值范围进行分区
- 此外,还支持列表分区和散列分区