索引

来源:互联网 发布:剑三成女捏脸数据 编辑:程序博客网 时间:2024/06/05 15:57

对于一些对的数据库还不太清楚的同胞们,应该对索引也不是很了解吧,下面我们就介绍一下索引的基本的一些知识

1、什么是索引

索引顾名思义就是表中所有记录的搜索引导,就好像是书的目录一样,可以引导我们去找到我们想要找的内容。


2、索引的内部结构

B树结构,就是一种树状结构。各个节点中保存着符合关键字以及指针组成的数组。指针当然是确定数据位置的信息,节点就是由这些指针相互关联起来。

最上层的节点被称为根节点,最下层的节点被称为叶子节点,两者之间的节点被称为中间节点。

B树结构一个显著的特征是从根节点到各个叶子节点的距离相等。这样,检索然和值时经过相同数目的节点,能提高检索效率。

B树检索的过程一般是在根节点中的各个值进行比较,发现匹配的中间节点,再和中间节点进行匹配,比较,随后就去检索叶子节点,取出对应的指针,就是检索的记录。


3、索引的设置与分析

创建索引时使用CREATE  INDEX 命令,CREATE[UNIQUE]  INDEX  索引名  on  表名(列名)

使用SHOW INDEX 命令来显示表中所有创建完成的索引信息,SHOW   INDEX   FROM    表名;


我们输入命令以后,会查询出下面的这些内容,然后和大家一一介绍一下查询出来的内容

Table:对象表名

Non_unique:是否允许重复(1:许可,0:禁止)

Key_name:索引名

Seq_in_index:索引内放入域序号(从1开始)

Column_name:域名

Collation:排序(A:升序,Null:不排序)

Cardinality:索引内的非重复值的数目

Sub_part:作为索引部分的域内的字符数

Packed:关键字的压缩方式

Null:是否语序为Null

Index_type:索引的类型

Comment:备注


4、创建多列构成的复合索引及唯一性索引

复合索引:create index  索引名  On  表名 (列名,……)

唯一性索引:create  unique  index  索引名  on  表名(列名)

在创建唯一性索引时如果指定lUNIQUE关键字,则可创建不可重复的索引,称为唯一性索引。对特定的列创建唯一性索引,相当于对该列追加了唯一性的制约,设定了唯一性索引,如果插入相同内容时系统就会给出错误提示。在生成唯一性索引时,如果列中已经含有重复的数据,那么创建唯一索引失败。


确认索引的使用情况:EXPLAIN调查对象select 语句。

explain查询出内容的详解



5、无法使用索引的情况

1)进行后方一致/部分一致检索的场合

2)使用了IS  NOT  NULL、比较运算符的场合

3)队列使用了运算/函数的场合

4)符合索引的第一列没有包含在WHERE条件语句中的场合

0 0
原创粉丝点击