zoukankan      html  css  js  c++  java
  • 索引的概念

    索引是定义在存储表(Table)的基础之上,有助于无需检查所有记录而快速定位所需记录的一种辅助存储机构,由一系列存储在磁盘上的索引项(index entries)组成,每一索引项又由两部分构成:索引字段和行指针

    存储索引项的文件为索引文件,存储表称为主文件。

    索引的存在与否不改变存储表的物理存储结构,其目的是可以明显提高存储表的访问速度

    索引文件组织方式有两种:

    排序索引文件:按索引字段值的某一顺序组织存储

    散列索引文件:依据索引字段值使用散列函数分配散列桶的方式存储。

    (主文件组织有堆文件、排序文件、散列文件、聚簇文件等)

    索引字段的值可以是Table中的任何一个属性的值或者多个属性值的组合值。

    索引文件比主文件很多,通过检索一个小的索引文件(可全部装载进进内存),快速定位后,再有针对性的读取非常大的主文件中的有关记录。

    索引技术应用使检索效率大幅度提高,但同时也增加了存储空间、使维护负担加重(要同时维护主文件和索引文件)

    衡量索引性能好坏

    访问时间、插入时间、删除时间、空间负载、支持存取的有效性(比如:支持的是属性的限定值还是支持属性的限定范围的值)

    对经常出现在检索条件、连接条件、分组计算条件中的属性可建立索引。

    SQL语言关于索引

    1.基本知识

    当定义Table后,如果定义了主键,则系统将自动创建主索引,利用主索引对Table进行快速定位、检索与更新操作。

    当索引被创建后,无论是主索引还是用户创建的索引,DBMS都将自动维护所有的索引

    当Table被删除后(drop table),定义在该Table上的所有索引将自动被撤销

    2.创建和维护索引的SQL语句

    创建索引:

    CREATE [UNIQUE] INDEX indexname

                  ON tablename ( colname[asc|desc] ...);

    【一般默认是asc,表示从小到大排序;desc表示从大到小排序】  

    示例:在student表中创建一个基于Sname的索引

    create index idxSname on student(sname);

    示例:在student表中创建一个基于Sname和Sclass的索引

    create index idxSnamcl on student(sname,sclass);

    示例:撤销用户创建的索引

    drop index indexname;

    越努力越幸运
  • 相关阅读:
    SSL JudgeOnline 1194——最佳乘车
    SSL JudgeOnline 1457——翻币问题
    SSL JudgeOnlie 2324——细胞问题
    SSL JudgeOnline 1456——骑士旅行
    SSL JudgeOnline 1455——电子老鼠闯迷宫
    SSL JudgeOnline 2253——新型计算器
    SSL JudgeOnline 1198——求逆序对数
    SSL JudgeOnline 1099——USACO 1.4 母亲的牛奶
    SSL JudgeOnline 1668——小车载人问题
    SSL JudgeOnline 1089——USACO 1.2 方块转换
  • 原文地址:https://www.cnblogs.com/labixinxinyexiangyouxiaobai/p/9737343.html
Copyright © 2011-2022 走看看