数据库优化(索引、分区)
索引:
提高查询效率, 增删改: 效率降低
表的数据量很大, 才会有查询效率优化
唯一索引(主键)一般用于身份证、学号
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完成插入、修改、删除等操作