`
BucketLi
  • 浏览: 195177 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
5a76a659-f8e6-3bf3-b39a-8ae8f7a0f9d9
Percolator与分布...
浏览量:5674
社区版块
存档分类
最新评论

MySQL源码分析(6):Innodb文件格式及压缩配置

阅读更多
Innodb文件格式及压缩配置
Innodb文件格式代表了数据库文件在磁盘上的组织形式。



Tablespace包含了很多文件或raw disk partition。
当innodb_file_per_table = on时,每个数据库会使用单独的ibd文件存储数据,否则将和系统表等数据一起放在innodb_data_file_path指定的文件中。
在系统表空间中,innodb会维护一些系统信息:
Internal data dictionary
Undo
Insert buffer
Double write buffer
Mysql replication info
表空间有多个层次,其中最小的单位是page,在未压缩时每个page是16k;64个page组成一个extent;多个extent和page构成一个segment。



在Innodb中,page有很多中格式,如下图所示:



存放若干条记录的page的格式如下图所示,由page header,page trailer,page body组成。



在Innodb中可以指定文件格式,它们会是Antelope, Barracuda, Cheetah, Dragon, Elk, Fox等等,按照字母顺序继续排列。
Antelope是Built-in-InnoDB(MySQL内置的InnoDB)支持文件格式的代号,有两种“数据表格式”(row_format):Redundant、Compact;Barracuda是InnoDB Plugin支持的文件格式,在原来的基础上新增了两种数据表格式的支持:Dynamic和Compressed。
一般,innodb_file_format在配置文件中指定;row_format则在创建数据表时指定。

启用压缩格式的条件
a).Innodb_file_per_table = 1
b).Innodb_file_format = barracuda
CREATE TABLE name (column1 INT PRIMARY KEY) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
这条语句将会创建一个压缩的page size=8K的表。
  • 大小: 73.5 KB
  • 大小: 77.6 KB
  • 大小: 89.4 KB
  • 大小: 32 KB
分享到:
评论

相关推荐

    Innodb存储引擎浅析—事务系统

    ### Innodb存储引擎浅析—事务系统 #### 学述 在MySQL的众多存储引擎中,InnoDB无疑是最为重要且被广泛使用的之一。本文旨在深入解析InnoDB存储引擎中的事务处理机制及其背后的设计原理。 #### 存储引擎介绍 在...

    MySQL源码包

    MySQL源码包是一款开源的关系型数据库管理系统,广泛应用于各种规模的企业和项目中,以其高效、稳定和易用性而著称。源码包是MySQL的原始编程代码,允许用户自行编译和定制以适应特定环境或需求。在这个场景中,我们...

    mysql-5.6.14 源码及安装脚本

    2. **获取源码**:下载 MySQL 5.6.14 的源码包,这通常是一个 `.tar.gz` 文件,解压缩后得到源代码目录。 3. **编译环境**:安装 `cmake`,它是构建 MySQL 的关键工具。你可以通过 `yum install cmake -y` 使用包...

    mysql-8.0.12源码安装包

    2. **依赖库**:安装MySQL源码前,需要确保系统已安装了必要的依赖库,如OpenSSL、zlib、ncurses、libaio等。这些库为MySQL提供了加密、压缩、终端交互等功能支持。 3. **配置阶段**:运行`configure`脚本来检查...

    mysql5.7源码包.tar.gz

    源码包`.tar.gz`格式是Linux系统中常见的压缩方式,用于存放MySQL的完整源代码,便于开发者在不同环境中编译和定制安装。在这个场景中,用户特别提到需要在Linux环境下编译安装MySQL 5.7,并且强调了CMake的重要性。...

    mysql-5.5.28 源码 vc2008可以完整编译

    通过编译MySQL源码,开发者不仅可以深入了解MySQL的内部工作原理,还可以根据实际需求进行定制,提高数据库系统的性能和安全性。这对于数据库管理员、软件开发者以及研究者来说都是一项重要的技能。在VC2008中编译...

    percona MySQL8.0.22-13源码包

    9. **日志管理**:了解如何配置和解析MySQL的日志文件,如错误日志、慢查询日志,这对于排查问题和优化性能至关重要。 10. **安全性**:了解MySQL的权限系统和SQL注入防护措施,确保数据库的安全运行。 11. **监控...

    mysql-5.6.28源码包

    编译MySQL源码需要遵循以下步骤: 1. **解压源码**:使用`tar -zxvf mysql-5.6.28.tar.gz`命令解压缩源码包。 2. **配置**:运行`./configure`检查依赖项并生成Makefile。 3. **编译**:执行`make`命令进行编译。 4...

    MySQL-8.0.13源码包,包含boost库

    1. **解压源码**:首先解压缩`mysql-8.0.13`文件,进入源码目录。 2. **配置**:运行`./configure`,根据你的系统配置选择合适的选项。 3. **编译**:执行`make`来编译源代码。 4. **安装**:使用`make install`将...

    银河麒麟兆芯MYSQL离线安装包mysql5.7_kylin_i386.zip

    1. **C++编译器**:MySQL的源码安装可能需要GCC或其他C++编译器来编译二进制文件。 2. **开发库**:例如libncurses、libssl、libpthread等,这些都是MySQL运行所必需的。 3. **系统工具**:如make、tar等用于构建和...

    mysql-5.7.26.tar.gz

    1. **获取依赖库**:MySQL源码安装需要一些基础的开发库,例如C++编译器(如GCC)、Make、Perl等,以及特定的库文件,如ncurses、openssl、zlib等。具体依赖可根据系统和安装需求查找。 2. **解压源码**:执行`tar ...

    mysql-5.6.35.tar.gz

    首先,让我们来理解一下`.tar.gz`文件格式。这是在Linux和Unix环境中常见的文件打包和压缩格式。`.tar`是一个用于归档多个文件和目录到一个单一文件的工具,而`.gz`是gzip压缩程序的结果,它能够有效地减小文件大小...

    mysql-5.6.23.tar.gz

    1. **解压源码**:使用`tar -zxvf mysql-5.6.23.tar.gz`命令解压缩文件。 2. **编译前准备**:安装必要的依赖库,如gcc、cmake、ncurses、openssl、zlib等。 3. **配置源码**:运行`./configure --prefix=/usr/...

    mysql-5.6.17.tar.gz

    6. **性能分析工具**:内置了Performance Schema,提供详细的性能监控和分析,帮助管理员诊断性能瓶颈。 7. **安全增强**:加强了认证和授权机制,支持更多的加密协议,提升了系统的安全性。 8. **高可用性**:...

    MySQL Community Server 5.6.25 源码

    通过分析和研究MySQL Community Server 5.6.25的源码,开发者可以了解其内部操作流程,实现自定义功能,或针对特定应用场景进行优化。同时,这也是学习数据库设计、事务处理、锁机制、查询优化等数据库核心概念的...

    mysql-5.5.22.tar.gz

    首先,`mysql-5.5.22.tar.gz` 是MySQL源码包的压缩格式,`tar` 是一种在Linux和Unix系统中广泛使用的打包工具,它可以将多个文件和目录打包成一个单一的归档文件。而`.gz` 后缀表示这个归档文件使用了gzip压缩算法,...

    mysql-5.7.6-m16.tar.gz

    1. **解压源码**:使用`tar -zxvf mysql-5.7.6-m16.tar.gz`命令解压缩文件。 2. **配置编译**:进入解压后的目录,运行`./configure`命令进行配置,可以根据需求指定安装路径、编译选项等。 3. **编译和安装**:执行...

    mysql-5.7.7-rc.tar.gz

    这种格式是Linux系统中常见的归档方式,它使用tar工具来组合多个文件和目录,并使用gzip压缩算法来减小文件大小,便于存储和传输。 源码编译安装MySQL 5.7.7-rc涉及以下步骤: 1. **解压源码**:首先,你需要在...

    mysql 5.5 源码(win带cmake)

    源码分析可以帮助我们深入了解其内部工作原理,对于开发者而言尤其有价值。在这个版本中,MySQL 引入了许多性能优化和功能增强,使其成为企业级应用的理想选择。 首先,MySQL 5.5 引入了InnoDB存储引擎的重大改进。...

    mysql-5.5.53.tar.gz

    这里的“mysql-5.5.53.tar.gz”是一个压缩文件,它包含了MySQL服务器的源代码,版本号为5.5.53。这个版本发布于2016年,是MySQL 5.5系列的一个稳定版本,提供了对SQL标准的良好支持,以及高性能和可靠性。 在Linux...

Global site tag (gtag.js) - Google Analytics