Oracle索引和同义词
/*
索引 相当于一本书的目录
如果有目录可以方便的定位到 具体的页码
索引用于数据库 提升查询的速度(数据量很大)
创建索引
单列索引 create index 索引名 on表名(列)
复合索引 使用场景: 如果创建了单列索引 但是查询条件为多个列
查询速度很低,可以考虑针对多个列创建复合索引
create index 索引名 on表名(列,列2)
**/
--创建大数据量表 5000000 条记录
declare
begin
for i in 1..5000000 loop
insert into orders values(order_sequecne.nextval,'订单'||order_sequecne.nextval,1000);
end loop;
commit;
end;
--测试索引的效率
--1.先查询没有索引的情况 记录耗时
select * from orders where oname='订单2222222'--2.797
--2.建立索引
create index order_index on orders(oname)
--3.再查询同样条件的数据 记录耗时
select * from orders where oname='订单2222222' --0.062
select * from orders where oid = 3333333
--使用oname 和oprice 创建复合索引
create index order_fu_index on orders(oname,oprice)
select * from orders where oname='订单2222222' and oprice = 1000;
/*
rowid 是oracle数据库 在保存数据库时候生成的真实物理地址 唯一不变
用于数据库操作记录使用
rownum 是查询才会生成 根据条件不同 顺序不同会变化
*/
select * from emp;
select rowid, emp.* from emp;
/*
rowid 是oracle数据库 在保存数据库时候生成的真实物理地址 唯一不变
用于数据库操作记录使用
rownum 是查询才会生成 根据条件不同 顺序不同会变化
*/
select * from emp;
select rowid, emp.* from emp;
/*
同义词 给一个用户的对象 起个别名
缩短查询语句
权限控制
create synonym 同义词名 for 用户.对象
了解使用
*/
create synonym emp_syn for scott.emp;
select * from emp_syn