MySQL的存储引擎参数介绍

165 阅读2分钟

这是我参与8月更文挑战的第12天,活动详情查看:8月更文挑战

猫和老鼠.jpg

前言:  本篇文章 是我关于MySQL的第12篇文章,水平一般、能力有限。文章写的比较浅,适合新手来看。本篇文章采用MySQL8.0来举例。本篇文章是接着前面的MySQL多版本控制并发简单介绍一下MySQL的存储引擎。

表存储文件

MySQL在保存一张表时,会在数据库目录下创建一个和表名相同的frm文件。比如表名为Food,则会在数据库目录下创建名为Food.frm的文件来定义该表。当然MySQL的创建的文件名和平台是相关的,Window端和linux端的大小写敏感度是不同的。

如果想查询表的相关信息,可以用show table status命令来查询。例如我们创建的Food表。

show table status like 'Food';

Name           |Value              |
---------------+-------------------+
Name           |Food               |
Engine         |InnoDB             |
Version        |10                 |
Row_format     |Dynamic            |
Rows           |0                  |
Avg_row_length |0                  |
Data_length    |16384              |
Max_data_length|0                  |
Index_length   |0                  |
Data_free      |0                  |
Auto_increment |                   |
Create_time    |2021-08-12 22:44:00|
Update_time    |                   |
Check_time     |                   |
Collation      |utf8mb4_0900_ai_ci |
Checksum       |                   |
Create_options |                   |
Comment        |食物表             |

参数介绍:

  • Name : 表名(Food)
  • Engine: 表的存储引擎类型,我在这里使用的是InnoDB创建的表。
  • verson: 内部版本号(修改了表结构版本号也没有改变)
  • Row_format: 行记录格式,Dynamic表明行长度是可以变的。也可以在 create table 的时候指定ROW_FORMAT=Dynamic 。如果不指定的话InnoDB默认格式也是Dynamic
  • rows: 表的行数,在MyISAM等存储引擎中是精确值,在InnoDB中为估计值。比如我现在表中其实有一条数据,但是显示Rows=0;
  • Avg_row_length: 平均每行的字节数。
  • Data_length: 表的字节总量
  • Max_data_length: 表最大数据长度
  • Index_length: 索引的大小
  • Data_free: 已经分配但没有使用的空间,大部分是删除已有数据腾出的表空间。有时候数据库资源满了,但是表中没有多少数据,这个时候可以检查一下表的这个字段。
  • Auto_increment: 下一个自增的值
  • Create_time: 表的创建时间
  • Update_time: 表的最后更新时间
  • Check_time: 最后检查表的时间
  • Collation: 表的字符集排序规则
  • Checksum: 开启时,存储的是表的实时校验和。
  • Create_options: 创建表时指定的其他选项。
  • Comment: 表示存储引擎创建时的表备注。

参考文档:

《高性能MySQL》