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的其他存储引擎不支持热备份,要获取一致性视图需要停止对所有表的写入,而在读写混合场景中,停止写入可能也意味着停止读取。

相关文章推荐

innodb 建立聚簇索引

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

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

myisam的主索引和次索引都指向物理行,下面来进行讲解 innodb的主键下存储该行的数据,此索引指向对主键的引用 myisam的索引存储图如下,可以看出,无论是id还是cat_id...

innodb索引概念

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

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

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

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%...

Solr学习(2)----FieldType总结

一、介绍 solr在对一个域进行存储和处理的时候,会根据域数据类型去进行相应的处理,例如Text类型的数据会进行分词处理,然后在进行索引的创建,并且,用户可以通过对域的类型进行制定,从而更好的操作查询...

使用mysqldump导出数据时对字段中包含的单引号的处理

最近在做一个日志统计项目,有一个辅助表是在MySQL数据库的,现在要将其迁移到Postgresql,自然是先用mysqldump将MySQL里面的数据导出,然后再导入到Postgresql即可。但在实...

mysql(四)Innodb的聚簇索引

聚簇索引并不是一种单独的索引类型,而是一种数据存储方式。具体的细节依赖于其实现方式,但InnoDB的聚簇索引实际上在同一个结构中保存了B-Tree索引和数据行。 当表有聚簇索引时,它的数据行实际上存...

非聚簇索引

1 建立索引  建立索引的目的是加快对表中记录的查找或排序。付出的代价:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。 索引分为聚簇索引和非聚簇索引两种 ...
  • zfj1981
  • zfj1981
  • 2011年03月23日 15:02
  • 606

聚簇索引

转自:http://www.blogjava.net/shanben/archive/2008/07/08/213227.html?opt=admin 聚簇索引和非聚簇索引都是为了增加数据检索速度而...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:InnoDB 是基于聚簇索引建立的
举报原因:
原因补充:

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