Oracle中索引及空间索引的总结整理

索引:对数据库表中的某些列进行排序,便于提高查询效率。索引与表一样,也属于段(segment)的一种。里面存放了用户的数据,跟表一样需要占用磁盘空间。索引是一种允许直接访问数据表中某一数据行的树型结构,为了提高查询效率而引入,是一个独立于表的对象,可以存放在与表不同的表空间中。索引记录中存有索引关键字和指向表中数据的指针(地址)。对索引进行的I/O操作比对表进行操作要少很多。索引一旦被建立就将被Oracle系统自动维护,查询语句中不用指定使用哪个索引。

索引存储了索引列和ROWID

建设原则:

1、索引应该经常建在Where 子句经常用到的列上。如果某个大表经常使用某个字段进行查询,并且检索行数小于总表行数的5%。则应该考虑。

2、对于两表连接的字段,应该建立索引。如果经常在某表的一个字段进行Order By 则也应该考虑建立索引。

3、不应该在小表上建设索引。

优缺点:索引主要进行提高数据的查询速度。当进行DML时,会更新索引。因此索引越多,则DML越慢,其需要维护索引。因此在创建索引及DML需要权衡。

单一索引:Create Index On (Column_Name)。

复合索引: Create Indexi_deptno_job on emp(deptno,job); —>emp表的deptnojob列建立索引。

唯一索引:CREATE UNIQUEINDEX UQ_ENAME_IDX ON EMP(ENAME)。

空间数据索引空间索引是对存储在介质上的数据位置信息的描述,因此系统的设计者必须将数据在磁盘上的位置加以记录和组织,通过在内存中的一些计算来取代对磁盘漫无目的的访问,才能提高系统的效率,尤其是GIS涉及的是各种海量的复杂数据,索引对于处理的效率是至关重要的,用来提高系统对数据获取的效率。

你可能感兴趣的:(Oracle)