innodb 索引

原创 2012年03月26日 16:59:51

innodb索引采用B+树结构。

B树数据存储是有序的,每个叶子节点到根的距离是一样的。根节点保存了指向子节点的指针,innodb会根据指针查找数据。叶子节点只有指向被索引数据的指针,没有指向其他节点的指针,而B+数的每一个叶子节点有指向下一个节点的连接,实现快速遍历。

B树的深度取决于表的大小。

B数索引的局限:

      1.只能从索引最左边开始

      2.不能跳过索引列

      3.不能使用第一个范围条件列后面的列

      造成上述局限主要原因是mysql优化器和存储引擎造成的。

哈希索引: 它只对使用了索引的每一列的精确查找有用。对于每一行,存储引擎计算出了被索引列的哈息码。它把哈希码保存在索引中,并且保存了一个指向哈希表中每一行的指针

哈希索引局限:

      1.索引只包含了哈希码和行指针,而不是值自身。

      2.mysql不能使用哈希索引进行排序。

      3.不支持部分建匹配,因为它们是由被索引的全部值计算出来的。

      4.不支持范围查询,只支持=,IN()和<=>的相等比较

      5.访问哈希索引很快,除非发生碰到相同的哈希码。当碰到相同的哈希码时,存储引擎必须访问链表中的每一个行的指针,然后逐行进行比较,确定正确的数据。


剖析Mysql的InnoDB索引

本篇介绍下Mysql的InnoDB索引相关知识,从各种树到索引原理到存储的细节。 InnoDB是Mysql的默认存储引擎(Mysql5.5.5之前是MyISAM,文档)。本着高效学习的目的,本篇以介绍...
  • voidccc
  • voidccc
  • 2014年10月26日 18:00
  • 6185

InnoDB常见索引

B+树索引自适应哈希索引全文检索 一、B+树索引      所有记录按键值的大小顺序存到B+树的叶子节点,叶子节点构成一个双向链表。B+树的查找次数和高度有关,B+树索引的高度一般在2—4层。 ...
  • u011967405
  • u011967405
  • 2016年06月29日 13:35
  • 599

MySQL InnoDB索引介绍及优化(初学者)

什么是索引?索引(index)翻译为一个目录,用于快速定位我们想要找的数据的位置。例如:我们把一个数据库比作一本书,而索引(index)就是书中的目录,此刻要找到书的某个感兴趣的内容,我们一般是不会整...
  • qq_28602957
  • qq_28602957
  • 2016年11月11日 12:40
  • 3300

innodb索引概念

author:skate time:2013/04/09   总结记录下innodb的索引概念,以备查看   innodb索引分类: 聚簇索引(clustered index)     ...
  • wyzxg
  • wyzxg
  • 2013年04月09日 19:32
  • 5720

mysql InnoDB引擎支持hash索引吗

mysql InnoDB引擎支持hash索引吗     查一下mysql官方文档:https://dev.mysql.com/doc/refman/5.7/en/create-index.html, ...
  • doctor_who2004
  • doctor_who2004
  • 2017年08月19日 20:33
  • 1454

InnoDB引擎索引大观

InnoDB是mysql处理OLTP(online transcation process)类型业务的存储引擎。为了加快数据查询速度,InnoDB引擎提供了丰富的索引实现。1. 索引的分类 索引可以...
  • gexiaochuan122
  • gexiaochuan122
  • 2015年07月27日 08:36
  • 1119

Innodb引擎数据与索引文件单独存储方式

Innodb引擎中,数据与索引文件默认会存储在ibdata1文件中 使用以下命令可查看是否开启单独存储数据与索引文件: show variables like 'innodb_file_per_tab...
  • MaleicAcid
  • MaleicAcid
  • 2017年02月15日 18:17
  • 421

MySQL innoDB索引底层原理详解

本文介绍MySQL的InnoDB索引相对底层原理相关知识,涉及到B+Tree索引和Hash索引,但本文主要介绍B+Tree索引,其中包括聚簇索引和非聚簇索引,InnoDB数据页结构详解,B+Tree索...
  • u012978884
  • u012978884
  • 2016年09月02日 21:25
  • 10229

建索引的原则-以innodb为例

一、写在前面       随着开发、测试任务进入尾声,大家都在整理一些项目发布前的一些准备工作,其中一个重要的工作就是为之前写的一些sql语句建立索引,这高并发、高访问量的环境下是非常有必要的,建立一...
  • jirongzi_cs2011
  • jirongzi_cs2011
  • 2015年08月16日 12:01
  • 1455

MyISAM和InnoDB索引实现对比

在数据库开发中,了解不同存储引擎的索引实现方式对于正确使用和优化索引都非常有帮助。例如,知道了InnoDB的索引实现后,就很容易明白为什么不建议使用过长的字段作为主键,因为所有辅助索引都引用主索引,过...
  • z702143700
  • z702143700
  • 2015年05月27日 16:57
  • 3401
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:innodb 索引
举报原因:
原因补充:

(最多只允许输入30个字)