zoukankan      html  css  js  c++  java
  • 了解索引

    索引:

    索引是对表中一个或多个列的值进行排序的结构。

    1) 应该创建索引的列的特点:

    ① 在经常需要搜索的列上创建索引,可以加快搜索的速度;

    ② 在作为主键的列上创建索引,强制该列的唯一性;

    ③ 在经常用在连接的列上创建索引,主要是一些外键,可以加快连接的速度;

    ④ 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;在经常需要排序的列上创建索引,因为索引已经排序,可以利用索引的排序加快查询;

    ⑤ 在经常使用在WHERE子句中的列上创建索引,加快条件的判断速度。 

    2) 不应该创建索引的列的特点:

    ① 在查询中很少使用的列上不应该创建索引,因为这些列很少使用到,因此有索引或无索引,并不能提高查询速度,相反由于增加了索引,反而降低了系统维护速度,增大了空间需求;

    ② 在只有很少数据值的列上不应该创建索引,很少数据值的列如性别等,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大,增加索引,并不能明显加快检索速度;

    ③ 当修改性能远远大于检索性能时,不应该创建索引,因为改性能和检索性能是互相矛盾的,当增加索引时,会提高检索性能,但会降低修改性能,当减少索引时,会提高修改性能,但会降低检索性能。因此,当修改性能远大于检索性能时,不应该创建索引。

    3) 可以在数据库设计器中创建三种索引:

    ① 唯一索引:

    不允许其中任何两行具有相同索引值的索引。

    ② 主键索引:

    表的某一列或列组合,其值唯一标识表中的每一行,该列或列组合称为表的主键。为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。

    ③ 聚集索引:

    聚集索引:聚集索引表示表中存储的数据按照索引的顺序存储。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。

    聚集索引实例:字典默认按字母顺序排序,如知道某个字的读音可根据字母顺序快速定位。

    非聚集索引:非聚集索引表示数据存储在一个地方,索引存储在另一个地方,索引带有指针指向数据的存储位置,需要查询两个地方才能查找到数据。一个表可以包含多个非聚集索引,可以为查找数据时常用的每个列创建一个非聚集索引。

    非聚集索引实例:如需查询某个生僻字,则需按字典前面的索引,如按偏旁进行定位,找到该字对应的页数,再打开对应页数找到该字。

    与非聚集索引相比,聚集索引通常提供更快的数据访问速度,但对数据更新影响较大。

    4)索引的优点:

    加快对数据的检索。

    5)索引的缺点:

    ① 减慢数据录入的速度;

    ② 增加了数据库的尺寸大小。

  • 相关阅读:
    Django-4
    Django-3
    博客中涉及的源码下载
    源码阅读系列:EventBus
    使用DFA做文本编辑器的自动提示
    计算机网络-IP类型判断
    感兴趣的文章搜集
    The Engine Document of JustWeEngine
    [译文]选择使用正确的 Markdown Parser
    Android源码阅读-Filter过滤器
  • 原文地址:https://www.cnblogs.com/iampengl/p/9242517.html
Copyright © 2011-2022 走看看