MySQL存储引擎InnoDB详解(二)存储引擎文件

  每个表存储引擎有自己独有的文件。

一、表空间文件

  InnoDB采用将存储的数据按表空间(tablespace)进行存放的设计。
  默认配置下有一个初识大小为10M,名为ibdata1的文件,默认的表空间文件(tablespace file)。
  通过参数innodb_data_file_path设置文件

	innodb_data_file_path=/db/ibdata1:2000M;/dr2/db/ibdata2:2000M:autoextend

  表示将/db/ibdata1和/dr2/db/ibdata2两个文件来组成表空间,其中ibadata1的大小为2000M,文件ibdata2的大小为2000MB,如果用完了这2000MB,该文件可以自动增长(autoextend)。

  除了共享表空间,还可以设置独立表空间,通过参数innodb_file_per_table控制,生成的文件名为:表名.ibd

	show variables like 'innodb_file_per_table'

二、重做日志文件

  记录InnoDB存储引擎事务日志的文件称作重做日志文件(redo log file)。

2.1 概述

  每个InnoDB存储引擎至少有1个重做日志文件组(group),每个文件组下至少有2个重做日志文件,如默认的ib_logfile0和ib_logfile1。为了得到更高的可靠性,用户可以设置多个的镜像日志组(mirr

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
InnoDBMySQL 关系型数据库管理系统的一种存储引擎。它使用了一种称为"多版本并发控制"(MVCC)的技术来提供高性能和高并发性能。下面是 InnoDB 存储引擎的架构详解: 1. 缓冲池(Buffer Pool):InnoDB 使用了一个内存缓冲池来存储数据和索引。这个缓冲池是 InnoDB 存储引擎的关键组件,它用于减少磁盘 I/O 操作,提高性能。当数据被修改时,首先会被写入缓冲池中,然后再由后台线程将其刷新到磁盘。 2. 重做日志(Redo Log):InnoDB 使用了重做日志来保证事务的持久性。重做日志记录了对数据库进行的所有修改操作,包括插入、更新和删除操作。当系统崩溃或发生故障时,可以通过重做日志来恢复数据库的一致性。 3. 数据文件InnoDB 将数据和索引存储在数据文件中。每个表都有一个对应的数据文件,其中包含了表的数据和索引信息。InnoDB 支持自动扩展和自动收缩数据文件的功能。 4. 页(Page):InnoDB 将数据和索引分成固定大小的页来管理。默认情况下,一个页的大小为 16KB。每个页都有一个唯一的标识符,称为页号。InnoDB 使用这些页来存储数据和索引。 5. 事务管理:InnoDB 支持事务的 ACID 特性(原子性、一致性、隔离性和持久性)。它使用了多版本并发控制(MVCC)来实现高并发性能和数据一致性。 6. 锁机制:InnoDB 使用了行级锁来控制并发访问。这意味着多个事务可以同时读取同一张表的不同行,而不会相互阻塞。只有当多个事务尝试修改同一行时,才会发生冲突。 总的来说,InnoDB 存储引擎的架构设计旨在提供高性能、高并发性能和数据一致性。它通过缓冲池、重做日志、数据文件、页、事务管理和锁机制等组件来实现这些目标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值