6.1、索引--Oracle模式对象
1、创建索引:
(1).单列索引
Create index name_index on 门诊费用记录(id)
(2).复合索引
同一张表可以有多个索引,但是要求列的组合必须不同,
--例如:
Create index emp_id on emp(ename,job);
Create index emp_id on emp(job,ename);
搜索是按照从后往前的顺序查找到,所以建立索引时,应按照列的区分度
2、创建原则:
(1).在大表上创建索引才有意义;
(2).在where子句或是连接条件上,经常引用的列上建立索引;
(3).索引的层次不要超过4层。
3、查看索引
显示表上包含的所有索引:
查询数据字典视图dba_indexs(数据库所有索引)和user_indexs(当前用户的索引)
Select index_name,index_type from user_indexs where table_name='表名';
--例如:
select * from user_indexes where table_name='门诊费用记录'
显示索引中的列:
查询数据字典视图user_ind_columns
Select table_name,column_name from user_ind_columns where index_name='IND_NAME';
--例如:
Select * from user_ind_columns where index_name in('门诊费用记录_IX_登记时间','门诊费用记录_IX_医嘱序号')
4、索引的优点和缺点:
优点:
(1).通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
(2).可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
(3).可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
(4).在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
(5).通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
缺点:
(1).占硬盘和内存空间;
(2).更新(增删改)数据时,索引要动态维护,系统需要额外的时间和资源参与维护,以维持数据和索引的一致性;