数据库优化(索引、分区)

索引:

提高查询效率,      增删改: 效率降低
表的数据量很大, 才会有查询效率优化

 

唯一索引(主键)一般用于身份证、学号

CREATE  [UNIQUE]  INDEX  索引名  ON 表名(列的列表)

B树索引(唯一值多,重复值少的) 一般用于姓名

create index idx_dexId on dex(id);

位图索引(重复值比较多的)一般用于性别、职位

create bitmap index 索引名 on 表名(列);
create  bitmap index bm_sex on dex(sex);

反向建索引(创建在类似于序列增长例上)一般用于自增列

create index i_texq on teacher(tseq) reverse;
create index 索引名 on 表名(表的列名)reverse;

函数索引(经常使用的一个函数) 一般使用于包含函数查询

create index i_tname2 on teacher(upper(tname))
select * from teacher where upper(tname) = 'ZHANFSAN'

组合索引  一般用于经常使用两个字段结合使用

create bitmap index i_g_j on teacher(tgender,tjob)

分区

具体实现:https://www.cnblogs.com/wayne-ivan/p/6416539.html

范围分区(列值的范围作为划分条件)

列表分区(列值必须明确,一个分区一个列)

散列分区(列无规律,列的hash值自动分配)

复合分区(先按第一分区方法区分,再按第二分区方法划分子分区)

其他分区(其他分区)

例:按时间划分

CREATE TABLE ORDER_ACTIVITIES
(
ORDER_ID NUMBER(7) NOT NULL,
ORDER_DATE DATE,
TOTAL_AMOUNT NUMBER,
CUSTOTMER_ID NUMBER(7),
PAID CHAR(1)
)
PARTITION BY RANGE (ORDER_DATE)
(
PARTITION ORD_ACT_PART01 VALUES LESS THAN (TO_DATE('01- MAY -2003','DD-MON-YYYY')) TABLESPACEORD_TS01,
PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE('01-JUN-2003','DD-MON-YYYY')) TABLESPACE ORD_TS02,
PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE('01-JUL-2003','DD-MON-YYYY')) TABLESPACE ORD_TS03
)

oracle在进行跨库访问时,可以通过创建dblink实现,

创建dblink,以及通过dblink完成插入、修改、删除等操作

posted @ 2020-08-04 15:40  64Byte  阅读(269)  评论(0编辑  收藏  举报