Oracle数据库之索引、分区

总结完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位图索引。
  • 索引的类别:
  1. b-tree索引:Oracle数据中最常见的索引,没有特殊的应用要求
  2. bitmap位图索引:应用于列数据只有几个枚举值的情况
  3. 函数索引:应用于对某个字段做查询时经常带函数操作
  4. 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 );
  • 上述是按照值范围进行分区
  • 此外,还支持列表分区和散列分区

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注