zoukankan      html  css  js  c++  java
  • 索引

    (1)主键与唯一性约束的区别:主键 = 唯一性约束 + 非空约束。

      当定义主键或者唯一性约束时,oracle 会自动在相应的字段上创建唯一性索引。

    (2)索引原理:

       create index   idx_emp_ename on emp_index(ename);

      当为ename这个列建立了一个索引后,oracle会对 表 emp_index 进行一次全表扫描, 获取每条记录 ename 列的数据, 并进行升序排列。

      同时会获取每条记录的 ROWID值,连同排序后的 ename列一起存储到 索引段中, 格式是 (索引列值, ROWID),这种组合也称为索引条目。

      当检索数据是,oracle首先对索引中的列进行快速搜索,由于索引列已经排序过,因此可以使用各种快速的搜索算法,避免全表扫描。在找到所要检索的数据后,通过ROWID在 emp_index表中读取具体的记录值。

    (3)创建索引:

    语法: create index index_name on table_name([column1, column2...]);

      默认创建的是B树索引。当创建复合索引时,索引列的顺序决定了索引的性能,通常将最常查询的列放在前面,不常查询的列放在后面。

    (4) 创建索引的10条原则:

    1 小表不需要创建索引

    2 对于大表而言,如果经常查询的记录数目小于表中总记录数的15%,可以创建索引。

    3 对于大部分列值不重复的列可以建立索引

    4对于基数大的列,适合建立B树索引,对于基数小的列适合建立位图索引。

    5对于列中有许多空值,但经常查询所有的非空值记录的列,应该建立索引。

    6 LONG 和 LONG RAW 列不能建立索引。

    7 经常进行连接查询的列上应该创建索引。

    8 在 使用 create index 创建索引时,将最常查询的列放在其他列前面。

    9维护索引需要开销,特别是对表进行插入和删除操作时,因此要限制表中索引的数量

    10 在表中插入数据后建立索引。

    (5)修改索引

    1 重命名索引

    alter index  idx_old_name RENAME TO idx_new_name

    2 合并和重建索引

  • 相关阅读:
    python基础11——seek应用&文件修改
    emmm......就当练习了系列08
    python基础10——文件操作x/b模式&控制指针移动
    emmm......就当练习了系列07
    emmm......就当练习了系列06
    python基础09——文件操作
    已经free的pycharm突然"抢钱"?粗暴的搞定它!
    由于系统掉电,导致磁盘扩容时,系统进入救援模式
    关于/etc/fstab的理解
    Linux磁盘
  • 原文地址:https://www.cnblogs.com/ly01/p/8510971.html
Copyright © 2011-2022 走看看