/*
索引:相当于是一本书的目录,能够提高我们的查询效率
如果某一列,你经常用来作为查询条件,那么就有必要创建索引,数据量比较的情况
语法:
create index 索引的名称 on 表名(列)
注意:主键约束自带主键索引, 唯一约束自带唯一索引
索引原理: btree balance Tree 平衡二叉树
如果某列作为查询条件的时候,可以提高查询效率,但是修改的时候,会变慢
索引创建好之后,过了一段,DBA都会去做重构索引
SQL调优:
1.查看执行计划F5
2. 分析里面的cost 和 影响行数, 想办法降低
*/
--五百万数据测试
create table tests(
name varchar2(30),
address varchar2(20)
);
insert into tests values('')
--插入500000万条数据
declare
begin
for i in 1..5000000 loop
insert into tests values('姓名'||i,'地址'||i);
end loop;
commit;
end;-- 1:40
select * from tests;
delete from tests;
--在没有添加索引的情况下,去查询 name='姓名3000000'
select * from tests where name='姓名50000'; -- 0.091
-- create index 索引名称 on 表名(列名);
-- create index ind_tests on tests(name);
--创建索引 name 再去查询 name='姓名3000000'
create index ind_test on tests(name);
select * from tests where name='姓名50000'; -- 0.023
drop index ind_tests;
--在没有添加复合索引的情况下,再去查询 name='姓名3000000' and '地址3000000'
select * from tests where name='姓名70000' and address='地址30000'; -- 0.014
--创建复合索引的情况下, 再去查询
create index ind_tests2 on tests(name,address);
select * from tests where name='姓名70000' and address='地址30000'; --0.021
drop index ind_testss2;
oracle索引以及代码测试
最新推荐文章于 2023-06-10 18:36:40 发布