首页 > 数据库技术 > 详细

数据库索引使用方式

时间:2019-05-28 21:58:20      阅读:156      评论:0      收藏:0      [点我收藏+]

使用索引是提高数据库查询效率的主要方式,下面从索引结构,索引类型,创建索引,命中索引几个方面来介绍索引。

一、索引结构

mysql5.5以上的默认存储引擎innodb,只显式支持BTree( 事实上从数据结构上来讲是B+树,mysql称之为BTree)索引,对于频繁访问的表,innodb会建立自适应hash索引,

即在B树索引基础上建立hash索引,可以显著提高查找效率,用户是无法自己指定的,除此之外还有Hash索引和全文索引(fullText索引)。

 

BTree索引 

BTree,顾名思义,就是所有的索引节点都按照balance tree的数据结构来存储。BTree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度。

 

Btree中,每个结点包含:

 

1、本结点所含关键字的个数;

 

2、指向父结点的指针;

 

3、关键字;

 

4、指向子结点的指针;

 

更详细的B+树介绍参考https://www.cnblogs.com/yangecnu/p/Introduce-B-Tree-and-B-Plus-Tree.html

 

 

Hash索引 

Hash 索引由于使用了hash表结构,其检索效率很高,索引的检索可以一次定位,不像B+树索引需要从根节点到枝节点,

所以 Hash 索引的查询效率要远高于 B+树 索引。但是,Hash索引的使用范围非常有限。

    1.在MySQL中,只有HEAP/MEMORY引擎表才能支持哈希索引,InnoDB引擎的自适应哈希索引(adaptive hash index)不

   能在创建索引时指定。

   2.Hash索引仅支持=,>=,<=这几种条件运算,不支持排序,范围内查找,like等查询。

   3.Hash索引不支持组合索引中部分索引的查找。

   4.当Hash值重复较多时,索引速度可能不如BTree索引。

FullText索引

 

Full-text索引就是我们常说的全文索引,他的存储结构也是Btree。主要是为了解决在我们需要用like查询的低效问题。

只能解决’xxx%’的like查询。如:字段数据为ABCDE,索引建立为A、AB、ABC、ABCD、ABCDE五个。

 

三、创建索引

建立索引:

 create index 索引名 on 表名(索引字段名)

建立唯一索引(唯一索引要求字段中不会出现重复数据)

 create unique index 索引名 on 表名(索引字段名)

未完待续

数据库索引使用方式

原文:https://www.cnblogs.com/coder-lichao/p/10940338.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!