1.什么是序列
当某列需要自动增长时需要用到序列,序列一般用于主键或唯一列
--create sequence [seq_name]
start with [startnum]
increment by [incremnum]//增长的速度(步长)
minvalue [num]
maxvalue [num]
cycle //当序列增长到30000,重新从1开始 --oncycle不循环
cache//缓存--nocache表示不缓存 [cache
10表示一次产生10个号放入缓存,提交效率,但是可能产生跳号,用nocache避免产生跳号]
使用: 序列名.nextval
nextval和currval的区别
nextval: 增加sequence值然后返回 sequence值
currval: 返回当前值 [使用前必须先使用 序列.nextval 否则出错]
--序列使用场合
不包含子查询,snapshot,view的select语句
insert语句的子查询中
insert语句的values 中
update的set中
2.什么是索引
分类
单列索引
create index [indexname] on [tabalename]([columnname1]);
复合索引
create index [indexname] on
[tablename](columnname1,columnname2,...);
什么时候用索引
拥有大数据的表(大表)
在where 子句或是连接条件上经常引用的列上
select * from [tabname] where [columnname]=[condition]
索引次数不要超过4次
在逻辑型类型字段上,或值就是固定的几种的列上也不要建索引
索引的缺点
建立索引会增加表的大小1.2倍
索引会影响插入,修改,和删除的效率