InnoDB 是基于聚簇索引建立的

原创 2015年11月17日 19:02:20

  InnoDB 采用了来支持MVCC高并发,并且实现了四个标准的隔离级别。其默认级别是REPEATABLE READ(可重复读) ,并且,通过间隙锁(next-key locking)策略防止幻读的出现。间隙锁使得InnoDB 不仅仅锁定查询涉及的行,还会对索引中的间隙进行锁定,防止幻影行的插入。

  InnoDB 是基于聚簇索引建立的。InnoDB的索引结构和mysql的其他存储引擎有很大的不同,聚簇索引对主键查询有很高的性能。不过它的二级索引(second index,非主键索引)中必须包含主键列,所以如果主键列很大的话,其他的所有索引都会很大。因此,若表上的索引较多的话,主键应该尽可能的小。INNODB 的存储格式是平台独立的,也就是说可以将数据和索引文件从intel平台复制到power pc或者sun sparc平台。

  InnoDB 内部做了很多优化,包括从磁盘读取数据时采用的可预测性预读,能够自动在内存中创建hash索引以加速读操作的自适应哈希索引(adaptive hash index),以及能够加速插入操作的插入缓冲区(insert buffer)等。

  InnoDB 的行为是非常复杂的,不容易理解。如果使用了InnoDB,笔者强烈建议阅读官方手册中的“InnoDB事务模型和锁” 一节。如果应用程序基于InnoDB构建,则事先了解一下InnoDB的MVCC架构带来的一些微妙和细节之处是非常有必要的。存储引擎要为所有用户甚至包括修改数据行为的用户维持一致性的视图,是非常复杂的工作。

  作为事务型的存储引擎,InnoDB 通过一些机制和工具支持真正的热备份。Mysql的其他存储引擎不支持热备份,要获取一致性视图需要停止对所有表的写入,而在读写混合场景中,停止写入可能也意味着停止读取。

聚簇索引概念(Myisam与Innodb索引的区别)

myisam的主索引和次索引都指向物理行,下面来进行讲解 innodb的主键下存储该行的数据,此索引指向对主键的引用 myisam的索引存储图如下,可以看出,无论是id还是cat_id...
  • qq_25551295
  • qq_25551295
  • 2015年10月04日 22:47
  • 2715

innodb 建立聚簇索引

今天在mysql上建立聚簇索引,发现使用了create cluster index 会报语法错误。于是到网上查阅资料找到了原因:       因为我的mysql引擎是innodb,二在innodb里的...
  • qq_16681169
  • qq_16681169
  • 2016年01月23日 23:40
  • 1846

MYSQL性能调优: 对聚簇索引和非聚簇索引的认识

转自:http://pottievil.com/mysql%E8%AF%AD%E5%8F%A5%E8%B0%83%E4%BC%98-%E5%AF%B9%E8%81%9A%E7%B0%87%E7%B4%...
  • zhang_Red
  • zhang_Red
  • 2016年03月01日 19:21
  • 2526

mysql索引原理之聚簇索引

索引分为聚簇索引和非聚簇索引。 以一本英文课本为例,要找第8课,直接翻书,若先翻到第5课,则往后翻,再翻到第10课,则又往前翻。这本书本身就是一个索引,即“聚簇索引”。 如果要找"fire...
  • u014388408
  • u014388408
  • 2016年03月10日 10:19
  • 1211

做一个合格的程序猿之MYSQL存储引擎INNODB简介--初识索引(三)

mysql的Innodb存储引擎中的索引大概分三种,哈希索引,全文索引,和常用的B+树索引   1)全文索引,以前Innodb是不支持全文索引的,最近的版本才开始支持,即使目前支持了,用的人也是相对较...
  • linuu
  • linuu
  • 2016年03月05日 10:41
  • 867

是不是只要有主键的InnoDB表都是聚簇索引表

刚开始接接触MySQL, 好像说InnoDB的主键是按聚簇索引实现的,也就是说,只要有主键,则该表就是一个按聚簇索引来组织的表,(像Oracle的IOT那样),对么?...
  • geng67q5h
  • geng67q5h
  • 2014年10月30日 23:07
  • 349

InnoDB 是基于聚簇索引建立的

InnoDB 采用了来支持MVCC高并发,并且实现了四个标准的隔离级别。其默认级别是REPEATABLE READ(可重复读) ,并且,通过间隙锁(next-key locking)策略防止幻读的出现...
  • u012402926
  • u012402926
  • 2015年11月17日 19:02
  • 717

MySQL innoDB索引底层原理详解

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

Mysql--序列1--聚簇索引&非聚簇索引

而MySQL作为一个开源的数据库,在各大互联网公司使用极为普遍。本系列将从Mysql开始,一步步展示关于存储设计的诸多策略。 说到InnoDB和MyISAM的区别,很多人都会提到一个支持事务,一个不...
  • ahjxhy2010
  • ahjxhy2010
  • 2016年12月22日 09:32
  • 313

innodb索引概念

author:skate time:2013/04/09   总结记录下innodb的索引概念,以备查看   innodb索引分类: 聚簇索引(clustered index)     ...
  • wyzxg
  • wyzxg
  • 2013年04月09日 19:32
  • 5715
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:InnoDB 是基于聚簇索引建立的
举报原因:
原因补充:

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