• 索引


    (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 合并和重建索引

  • 相关阅读:
    c#/asp.net实现炫酷仿调色板/颜色选择器功能
    c#程序员机试题
    如何定义最佳 Cache-Control 策略
    HTTP 缓存之ETag 和Cache-Control的使用方法介绍
    ASP.NET MVC 提高运行速度的几种性能优化方法
    c#FTP操作类,包含上传,下载,删除,获取FTP文件列表文件夹等Hhelp类
    C#实现GridView导出Excel
    C#文件上传类,文件流,字节数组等
    c#XML操作类的方法总结
    c#实现list,dataset,DataTable转换成josn等各种转换方法总和
  • 原文地址:https://www.cnblogs.com/ly01/p/8510971.html
Copyright © 2020-2023  润新知