• Oracle数据库学习笔记_oracle创建表索引index


    关于索引更详细的介绍请见链接:https://www.csdn.net/gather_22/MtTaQg3sODM1Mi1ibG9n.html

    索引说明:

    索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引。如果有一份10页的账单,请你找出账单中客户名=“小雨”的所有流水。如果没有索引,你需要搜索整个账单,因为不能保证只有一个‘小雨’的流水,必须全部搜索一遍,这种方法就相当于全表扫描检索方式。但如果账单前页附有索引,里面有所有客户名+rowid的索引条目,且按客户名升序排列,你只需要检索索引页,就可以直接查到对应的记录,这就是索引的工作原理。相比之下,索引可以有效的提高检索速度。

    • 索引在逻辑上和物理上都与相关的表和数据无关,当创建或者删除一个索引时,不会影响基本的表。

    • 索引一旦建立,在表上进行DML操作时(例如在执行插入、修改或者删除相关操作时),oracle会自动管理索引,索引删除,不会对表产生影响。

    • 索引对用户是透明的,无论表上是否有索引,sql语句的用法不变。

    • oracle创建主键时会自动在该列上创建索引。

    索引创建语句:

    • 单列索引:

              create index index_name on table_name(column_name);

    • 复合索引:

              create index index_name on table_name(column_name1, column_name2, column_name, ...);

    •  删除索引:

               drop index index_name;

    • 查看某表的所有索引:

              select * from all_index where table_name='表名';

    • 查看某表中带有索引的所有列:

              select * from all_ind_columns where table_name='表名';

    索引的建立原则:

    • 索引应该建立在WHERE子句中经常使用的列上。如果某个大表经常使用某个字段进行查询,并且检索的行数少于5%,则应该考虑在该列上建立索引。
    • 对于两个表连接的字段应该建立索引。
    • 如果经常在某个表的字段上进行order by 的话,则也应该在这个列上建立索引。
    • 小表数据很少使用全表扫描速度已经很快,没必要建立索引。

    索引的优点:

    • 很大的提高了数据检索的速度;
    • 创建唯一索引能够保证数据库表中每一行数据的唯一性(唯一约束性)。
    • 提高表与表之间的连接速度。
  • 相关阅读:
    怎样防止应用因获取IDFA被AppStore拒绝
    多校第九场Arithmetic Sequence题解
    Hadoop文件解压缩
    FZU 2087 统计树边【MST相关】
    hdu2647(拓扑排序)
    jsp自己主动编译机制
    AsyncTask的原理和缺点
    C语言之文件操作08——总结
    Android API 文档 离线秒开方法
    在Windows8系统下exe格式会计课件下载播放帮助图解
  • 原文地址:https://www.cnblogs.com/tongying/p/13208484.html
Copyright © 2020-2023  润新知