zoukankan      html  css  js  c++  java
  • mysql索引结构

    mysql中索引的数据结构:

    1、基本上所有的索引都是B-Tree结构,一部分还有HASH索引。

    2、索引分类(功能)

    主键索引:一张表中最多有一个主键索引,而且该字段值不能为NULL,不能重复。

    唯一索引:一张表中可以有多个唯一索引,而且字段可以为NULL,但是不能有重复值。

    普通索引:一张表中可以有多个普通索引,而且值可以为NULL,并且值可以重复。

    全文索引:全文索引就是将该字段的信息加以拆分和组合,形成一份清单,和sphinx全文索引一样。

    复合索引:一个索引如果建立在多个字段上,那该索引就称为复合索引。

    说明:其实这些索引所用的数据结构都是一样的B-Tree结构。只是他们对字段信息的约束条件不一样。

    3、B-Tree数据结构简单说明

    1)B-Tree结构首先是分成很多节点,一个节点上面有很多的关键字(建立索引的字段),这些关键字在节点上是按照顺序排列的。

    2)在一个节点上,每一个关键字的前面都有一个下个节点指针。所以在一个节点上面,关键字的数量总是比节点指针的数量少一个。

    3)每个节点指针指向下一个节点。

    4、索引使用:左原则

    通过对B-Tree的结构做简单的分析,可以得出,使用想使用索引应该满足左原则。如:

    1)like查询的时候,不能以通配符开始

    2)复合索引,如果想使用第二个关键字索引,那第一个关键字必须要确定。

    列独立:只有参与表达式的字段在运算符的一边才能使用到索引。where id>3;where id+3>6;(这个使用不到索引)

    null不会被建立索引。但是有其他的方法能记录null字段的信息。

  • 相关阅读:
    JAVA面试题
    Io流
    初识线程池
    理解事务的4种隔离级别
    简单认识Git与GitHub
    JAVA自动装箱和拆箱
    代码块以及他们的执行顺序
    反射机制
    java Excel表格
    访问修饰符的含义分析
  • 原文地址:https://www.cnblogs.com/shiwenhu/p/4437016.html
Copyright © 2011-2022 走看看