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

    一、什么是索引?

    二、索引的数据结构?

    三、索引的种类?

    四、索引的优缺点?

    1、什么是索引?

      到底什么索引?大家说数据库时,总是绕不开索引这个概念,大家也都一直在使用索引,那么索引到底是什么?可以跟操作系统来联系一起讲深刻讲一讲索引。

      索引就是一种特殊的查询表,类似一本书的目录。在操作系统中,文件的存放结构是树状存放,其中叶子节点为文件,非叶子节点为路径。通常说的绝对路径就是从根节点访问到该文件的路线。创建文件时由两部分组成,系统会给创建的文件分配存储空间,此外,系统还会给文件分配一个i节点,里面存放的是文件名字和文件地址,所以在创建文件时,实际上为该文件+i节点。i节点就是该文件的索引。这就是为什么在创建文件时,同一个文件夹内的名字必须要唯一,因为名字就是主键。

      如下图所示,树状结构存放的是索引i节点,索引对应的是文件,这就为什么使用索引会增加时间开销和空间开销。因为在增加文件时,除保存文件外,还要对索引树进行维护。

       引用一下别人的说明,假如我们执行一个SQL语句:select * from table where id = 1256;首先根据索引定位到1256这个值所在的叶结点,然后再通过叶结点取到id等于1256的数据行。 这里不讲解平衡树的运行细节, 但是从上图能看出,树一共有三层, 从根节点至叶节点只需要经过三次查找就能得到结果。如下图

    二、索引的数据结构

      索引一般使用平衡树数据结构,也就是b tree或者 b+ tree,重要的事情说三遍:“平衡树,平衡树,平衡树”。此外, 有的数据库也使用哈希桶作用索引的数据结构。

    三、索引的种类

    (1)普通索引:这是最基本的索引,它没有任何限制。

    (2)唯一索引:它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。

    (3)主键索引:它是一种特殊的唯一索引,不允许有空值。

    (4)组合索引:可以有多列。

    (5)全文索引

    四、索引的优缺点

      优点:

      1、增加数据的检索速度

      2、不需要遍历全部数据

      缺点:

      1、减慢了数据录入的速度

      2、增加了存储开销

  • 相关阅读:
    QQ聊天界面的布局和设计(IOS篇)-第二季
    关于UIButton中的ContentEdgeInsets的深入研究
    QQ聊天界面的布局和设计(IOS篇)-第一季
    UITextField实现过滤选中状态拼音
    UITableView系列(1)---Apple缓存池机制
    应用程序打包(ipa)
    线程篇-01-NSThread
    IOS开发错误提示原因集合-----长期更新
    Divide and Conquer.(Merge Sort) by sixleaves
    [已完成,附上实现方式]DWZ横向导航实现动态左菜单树
  • 原文地址:https://www.cnblogs.com/wobushangwangl/p/11412763.html
Copyright © 2011-2022 走看看