mysql默认存储引擎--innodb存储引擎(详解)

官方解释:

        InnoDB,是MySQL数据库引擎之一,现为MySQL的默认存储引擎,为MySQL AB发布binary的标准之一。InnoDB由Innobase Oy公司所开发,2006年五月时由甲骨文公司并购。与传统的ISAMMyISAM相比,InnoDB的最大特色就是支持了ACID兼容的事务(Transaction)功能,类似于PostgreSQL

双轨制:

        双轨制授权指的是InnoDB采用的一种授权方式,它同时提供两种不同的授权方式,一种是GPL授权,另一种是专有软件授权。

        GPL授权是一种开源许可,它要求对源代码进行公开,并遵循相应的开源规定。在这种授权方式下,任何人都可以获取并使用InnoDB的源代码,对其进行修改和再发布。

        专有软件授权是一种封闭的授权方式,它不允许对源代码进行公开或修改。在这种授权方式下,InnoDB的源代码是封闭的,只有获得授权的人才可以获取和使用。

        双轨制授权的目的是为了满足不同用户的需求,有些用户可能更喜欢使用开源软件,有些用户则更喜欢使用封闭的软件。通过同时提供两种授权方式,InnoDB可以更好地满足不同用户的需求。        

简介:

InnoDB是一个支持ACID事务、行级锁定和高并发的事务型数据库引擎,它与MySQL服务器紧密集成。以下是有关InnoDB存储引擎的要点总结:

  1. 数据存储和索引:InnoDB将表和索引存储在一个表空间中,而不是像MyISAM表那样分别存储在不同的文件中。这个表空间可以由多个文件组成,并且在操作系统上没有2GB文件大小限制。

  2. 事务支持:InnoDB支持完整的事务处理,符合ACID(原子性、一致性、隔离性和持久性)属性。它允许在事务中包含多个SQL语句,并提供回滚和提交功能。

  3. 多版本并发控制:InnoDB使用多版本并发控制(MVCC)来处理并发访问,使得读取操作不会被写入操作所阻塞,提高了并发性能。

  4. 行级锁定:InnoDB支持行级锁定,这意味着只锁定需要修改的行,而不是锁定整个表或页面。行级锁定减少了锁冲突,允许更多并发操作。

  5. 外键约束支持:作为MySQL中第一个支持外键约束的引擎,InnoDB可以确保关联表之间的数据完整性,并执行级联操作(如级联删除和更新)。

  6. 缓冲池:InnoDB在内存中维护了一个专门的缓冲池,用于高速缓存数据和索引。这提高了数据的访问速度和整体性能。

  7. 可靠性:InnoDB具有崩溃恢复功能,它会将未完成的事务日志记录下来,并在数据库重新启动时进行恢复,保证数据的一致性。

  8. 可混合使用:InnoDB可以与其他MySQL表引擎混合使用。在一个查询中,你可以自由地将InnoDB表与其他类型的表混合,并实现复杂的查询操作。

innodb存储引擎底层知识--基础大纲:

InnoDB存储引擎的底层实现是基于B+树和聚簇索引的存储结构。

  1. 表空间(Tablespace):InnoDB存储引擎以表空间的形式存储数据。每个InnoDB数据库都由一个或多个数据文件组成的表空间来存储表和索引数据。

  2. 页(Page):InnoDB存储引擎将数据划分为固定大小的页(一般为16KB)。每个页都是独立的存储单元,包含表数据、索引数据和一些元数据信息。

  3. B+树索引:InnoDB使用B+树来组织和存储索引数据。B+树是一种高效的平衡搜索树,它通过在每个节点中保存多个关键字和指向子节点的指针来支持高效的数据查找。

  4. 聚簇索引(Clustered Index):InnoDB将每个表的主键索引与数据页合并成为一个聚簇索引。聚簇索引决定了数据在磁盘上的存储顺序,使得通过主键的查询变得非常高效。由于数据和索引在同一位置存储,聚簇索引还提供了较好的数据局部性,减少了磁盘IO的需求。

  5. 辅助索引(Secondary Index):除了聚簇索引外,InnoDB还支持辅助索引,也就是普通的非主键索引。辅助索引的叶子节点包含索引字段的值以及对应的主键值,通过主键值可以快速定位到相应的行数据。

总结:

        InnoDB是一个功能强大的存储引擎,专注于提供高性能、事务支持和并发控制。它的特点包括数据的可靠性、行级锁定、外键约束和多版本并发控制。由于这些优势,InnoDB成为处理大数据量和多用户并发操作的首选存储引擎。

  • 36
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码蒋

您的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值