在 Oracle 数据库里面如果要想创建索引有两种方式:
1. 当一个列上设置了主键约束或者是唯一约束的时候会自动的创建索引;
2.用户可以自己通过语法在指定的列上创建索引。
CREATE INDEX emp_sal_ind ON emp(sal)
此时索引创建完成。随后再次进行 sal 查询的时候显示的不再是全表扫描,而是根据一个基数扫描。那么通过索引的
查询可以明显的提升查询性能,而索引实现的关键是这棵树的维护(树是由 Oracle 内部自行维护的)。
那么继续以本程序为例,如果说此时修改了某些雇员的工资呢?那么这棵树一定要发生变化,所有的数据都需要重新排列。
那么此时配置的索引不仅没有提升性能,反而降低了性能,所以索引是一种相对的手段,而且永恒都要记住,没有绝对的性能提升途径。
同义词
果要想创建属于自己的同义词,则必须由管理员完成,而创建的语法如下:
CREATE [PUBLIC] SYNONYM 同义词的名称 FOR 用户名.表名称;
范例:将 scott.emp 表定义一个 myemp 的同义词(由 sys 完成)
CONN sys/change_on_install AS SYSDBA ;
CREATE SYNONYM myemp FOR scott.emp ;
创建完同义词之后,下面就可以直接通过 myemp 来访问 scott.emp 数据表了。
SELECT * FROM myemp ;
那么现在创建的同义词 myemp 存在一个小问题。因为此时的同义词只能够在 sys 下使用,它并不是一个公共的同义词,所以要想让所有用户都访问,则必须创建公共同义词。
范例:修改同义词的创建
CONN sys/change_on_install AS SYSDBA ;
DROP SYNONYM myemp ;
CREATE PUBLIC SYNONYM myemp FOR scott.emp ;
在实际的工作之中,同义词本身只属于 Oracle 自己的概念定义,所以此处只需要了解下基本概念即可。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx