Mysql的InnoDB存储引擎

        简介:InnoDB是Mysql数据库管理系统中的一种存储引擎,他是Mysql的默认存储引擎之一。InnoDB的最大特色是支持了ACID兼容的事务功能,类似于postgreSQL,提供了行级锁和多版本并发控制等高级特性。与传统的ISAM和MyISAM相比,InnoDB具有更好的性能和可靠性,是事务型数据库的首选引擎。InnoDB是为处理巨大数据量时的最大性能设计的,完全与Mysql服务器整合,维持他自己的缓冲池以在内存中缓存数据和索引,InnoDB采用双轨制授权,包括GPL授权和专有软件授权。InnoDB的设计考虑了高性能和大规模数据处理的场景,通过其内部的缓冲池、行级锁定和多版本并发控制等技术,确保了在高并发环境下的数据一致性和系统性能,这些特点使得InnoDB成为许多需要高性能、高可靠性数据库应用的首选引擎。

一丶InnoDB的主要特点和优势

优势:

  • InnoDB兼顾高可靠性和高性能的通用引擎,Mysql8.0就是默认InnoDB为存储引擎;
//查看搜索引擎
show engines

 

  • 支持 B+树索引,支持备份与恢复,支持聚簇索引,支持数据压缩,支持数据缓存,支持地理空间数据类型,经纬度,支持数据加密,支持地理空间索引。
  • 锁粒度-行级锁,修改一行的时候,别的不能修改,多并发控制,支持事务;

特点:

  • 事务支持:InnoDB支持ACID事务,即原子性、一致性、隔离性个持久性,这使得InnoDB能够在复杂的业务场景下提供可靠的数据处理。
  • 行及锁定:与表级锁定相比,行及锁定可以最大程度地支持并发,挺高系统的并发处理能力。
  • 数据恢复:InnoDB支持事务日志和崩溃恢复,确保在系统崩溃或其他故障的情况下,数据一致性和完整性得到保护。
  • 数据完整性:通过提供外键约束等机制,InnoDB增强了数据的完整性保护,防止了数据的不一致性状态。

二丶InnoDB的内存结构

        InnoDB内存结构主要包括四个部分:Buffer Pool(缓冲池)、Change Buffer(更改缓冲区)、Adaptive Hash Index (自适应哈希索引)、Log Buffer(日志缓冲区)。

  • Buffer Pool:这是InnoDB位于主存储器中的一片区域,用于缓存访问过的表和索引数据。缓冲池允许直接从内存处理频繁使用的数据,这加快了处理速度。在专用服务器上,通常高达80%的物理内存会分配给缓冲池,为了提高大容量读操作的效率,缓冲池被分割成一个个可以容纳多行的页(pages),并且使用LRU算法的一种变体来管理这些页,以确保最频繁访问的数据始终在内存中可用。
  • Change Buffer:这是一个特殊的数据结构,用于缓存不在缓冲池中的哪些二级索引页的变更。由Insert 和Update或者Delete这些DML操作导致被缓存的变化,将在当这些页被其他读操作加载到缓冲池后合并。
  • Adaptive Hash Index:自适应哈希索引特性使InnoDB在具有适当的负载组合和充足的缓冲池内存的系统上,执行得更像内存数据库,而不会牺牲事务特性或可靠性。自适应哈希索引通过观察到的搜索模式,使索引key的前缀来创建哈希索引,以提高查询性能。
  • Log Buffer:日志缓冲区用于存储redo log 和undo log的日志记录,这些日志记录在内存中暂存,然后适当的时候被写入磁盘,以确保数据的持久性和事务的原子性。

三丶InnoDB的磁盘结构

        InnoDB的磁盘结构主要由表空间(Tablespaces)组成,这些表空间包括系统表空间(System Tablespace)、独立表空间(File-per-table Tablespaces)、通用表空间(General Tablespaces)、撤销表空间(Uodo Tablespaces)和临时表空间(Temporary Tablespaces)。

  • System Tabalespace:系统表空间是一个共享的表空间,其物理文件默认名称ibdata1。它包含了数据字典、双写缓冲、修改缓冲和回滚日志等,系统表空间的大小可以自动扩展,但一旦设定后,不可缩减。
  • File-per-table Tablespaces:独立表空间为每张表提供独立的存储空间,每个表的数据和索引存储在单独的文件中。这种表空间通过参数Innodb_file_per_table控制,默认情况下该参数是开启的。
  • Undo Tablespaces:撤销表空间主要用于undo logs,这些日志用于事务回滚和多并发控制。
  • Temporary Tablespaces:临时表空间用于存储临时的数据和索引,这些数据在事务完成后可能会被清除。

结尾:喜欢的朋友点个赞吧 

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值