项的描述MyISAM
表或统计信息,使用这里显示的命令。本节稍后将解释这些命令的输出。
的tbl_name
参数可以是的名称MyISAM
表或其索引文件的名称,如中所述第4.6.4节,“myisamchk - MyISAM表维护实用程序”.多个tbl_name
可以给出参数。
假设有一个表名为人
具有以下结构。(MAX_ROWS
表选项,以便在示例中输出myisamchk稍后显示,一些值更小,更容易适合输出格式。)
CREATE TABLE person (id INT NOT NULL AUTO_INCREMENT, last_name VARCHAR(20) NOT NULL, first_name VARCHAR(20) NOT NULL,出生日期,死亡日期,主键(id),索引(last_name, first_name),索引(出生))MAX_ROWS = 1000000引擎=MYISAM;
假设表中有这些数据和索引文件大小:
-rw-rw---- 1 mysql mysql 9347072 8月19日11:47人。MYD -rw-rw---- 1 mysql mysql 6066176 8月19日11:47人。MYI
的例子myisamchk -dvv输出:
MyISAM文件:person记录格式:打包字符集:utf8mb4_0900_ai_ci(255)文件版本:1创建时间:2017-03-30 21:21:30状态:检查、分析、优化键、排序索引页自动增量键:1最后值:306688数据记录:306688删除块:0数据文件部件:306688删除数据:0数据文件指针(字节):4密钥文件指针(字节):3数据文件长度:9347072密钥文件长度:6066176最大数据文件长度:4294967294最大密钥文件长度:17179868159记录长度:Key Start Len Index Type Rec/ Key Root Blocksize 1 24 unique long 1 1024 2 6 80 multip。Varchar前缀0 1024 87 80 Varchar 0 3 168 3 multip。uint24 NULL 0 1024字段起始长度Nullpos Nullbit类型1 1 1 2 24 no zero 3 6 81 varchar 4 87 81 varchar 5 168 3 1 1 no zero 6 171 3 1 2 no zero
信息类型的解释myisamchk这里给出了产品。”密钥文件”索引文件。”记录”而且”行”都是同义的吗”场”而且”列。”
表描述的初始部分包含这些值:
MyISAM文件
项目名称
MyISAM
(指数)文件。记录格式
用于存储表行的格式。前面的示例使用
固定长度
.其他可能的值包括压缩
而且包装
.(包装
对应什么显示表状态
报告动态
.)Chararacter集
表默认字符集。
文件版本
版本的
MyISAM
格式。总是1。创建时间
创建数据文件时。
恢复时间
索引/数据文件最后一次重构的时间。
状态
表状态标志。可能的值为
坠毁
,开放
,改变了
,分析了
,优化的钥匙
,排序的索引页
.自动增量键
,最后一个值
键值与表的值相关联
AUTO_INCREMENT
列,以及该列最近生成的值。如果没有这样的列,这些字段就不会出现。数据记录
表中的行数。
删除模块
有多少删除的块仍然保留空间。您可以优化您的表以最小化此空间。看到第7.6.4节,“MyISAM表优化”.
丢失的部分
对于动态行格式,这表示有多少数据块。对于没有分段行的优化表,这与
数据记录
.删除的数据
有多少字节未回收的已删除数据。您可以优化您的表以最小化此空间。看到第7.6.4节,“MyISAM表优化”.
数据文件指针
数据文件指针的大小,以字节为单位。通常是2、3、4或5个字节。大多数表管理2字节,但这还不能从MySQL控制。对于固定表,这是一个行地址。对于动态表,这是一个字节地址。
密钥文件指针
索引文件指针的大小,以字节为单位。通常是1、2或3个字节。大多数表管理2字节,但这是由MySQL自动计算的。它总是一个块地址。
最大数据文件长度
表数据文件可以有多长,以字节为单位。
最大密钥文件长度
表索引文件可以有多长,以字节为单位。
Recordlength
每一行占用多少空间,以字节为单位。
的表描述
部分输出包括表中所有键的列表。对于每个键,myisamchk显示一些低级信息:
关键
这是钥匙的号码。此值仅针对键的第一列显示。如果缺少此值,则该行对应于多列键的第二列或后面的列。对于示例中显示的表,有两个
表描述
第二个索引的行数。这表明它是一个由两部分组成的多部分索引。开始
索引的这一部分从行中开始。
Len
索引的这一部分有多长。对于填充的数字,这应该始终是列的完整长度。对于字符串,它可能比索引列的全长短,因为可以索引字符串列的前缀。键的总长度为
Len
所有关键部件的值。指数
一个键值是否可以在索引中存在多次。可能的值为
独特的
或multip。
(多个)。类型
索引的这一部分具有什么数据类型。这是一个
MyISAM
包含可能值的数据类型包装
,剥夺了
,或空
.根
根索引块的地址。
Blocksize
每个索引块的大小。默认值是1024,但是当MySQL从源代码构建时,这个值可能会在编译时改变。
Rec /关键
这是优化器使用的统计值。它告诉这个索引的每个值有多少行。唯一索引的值总是1。在一个表被加载(或被极大地改变)之后,这可能会被更新myisamchk——.如果根本不更新,则给出默认值30。
输出的最后一部分提供了关于每列的信息:
场
列号。
开始
列在表行中的字节位置。
长度
列的长度,以字节为单位。
Nullpos
,Nullbit
对于可以是的列
零
,MyISAM
商店零
值作为字节中的标志。根据可空列的数量,可以有一个或多个字节用于此目的。的Nullpos
而且Nullbit
值(如果非空)指示哪个字节和位包含指示列是否为的标志零
.用于存储的位置和字节数
零
Flags显示在字段1的行中。这就是为什么有六个场
的行人
表,即使它只有五列。类型
数据类型。可以包含以下描述符:
常数
所有行都有相同的值。
没有endspace
不要存储端点空间。
没有endspace, not_always
不要存储端点空间,也不要对所有值进行端点空间压缩。
没有结束空间,没有空
不要存储端点空间。不要存储空值。
一览表
列被转换为
枚举
.补零(
N
)最重要的
N
值中的字节始终为0,不存储。没有零
不要存储零。
总是零
零值使用一位存储。
发怒的树
与列相关的霍夫曼树的编号。
位
霍夫曼树中使用的比特数。
的发怒的树
而且位
如果表已被压缩,则显示字段myisampack.看到第4.6.6节“myisampack -生成压缩的只读MyISAM表”,作为此信息的示例。
的例子myisamchk -eiv输出:
检查MyISAM文件:人数据记录:306688块删除:0 -检查有-没有检查记录delete-chain recordlinks检查关键delete-chain block_size 1024: -检查指数参考检查数据记录引用指数:1关键:1:块体使用:98%包装:0% Max级别:3 -检查数据记录引用指数:2关键:2:块体使用:99%包装:97% Max级别:3 -检查数据记录引用指数:3键:3:块体使用:98%包装:-14% Max级别:3总:块体使用:98%包装:89% -检查记录和索引参考***个行号删除***记录:306688 M.recordlength: 25 Packed: 83% Recordspace used: 97% Empty space: 2% Blocks/Record: 1.00 Record Blocks: 306688 Delete Blocks: 0 Record data: 7934464 Deleted data: 0 Lost space: 256512 Linkdata:1156096用户时间43.08,系统时间1.68最大驻留集大小0,整体驻留集大小0非物理页面故障0,物理页面故障0,交换0 block in 0 out 7,消息in 0 out 0,信号0自愿上下文开关0,非自愿上下文开关0最大内存使用量:1046926字节(1023k)
myisamchk -eiv输出包括以下信息:
数据记录
表中的行数。
删除模块
有多少删除的块仍然保留空间。您可以优化您的表以最小化此空间。看到第7.6.4节,“MyISAM表优化”.
关键
密钥号码。
块体使用
键块的使用百分比。当一个表刚刚被重组时myisamchk,数值非常高(非常接近理论最大值)。
包装
MySQL尝试打包具有共同后缀的键值。这只能用于上的索引
字符
而且VARCHAR
列。对于最左边部分相似的长索引字符串,这可以显著减少所使用的空间。在前面的例子中,第二个密钥是40字节长,空间减少了97%。最大水平
这个键的b树有多深。具有长键值的大型表将获得较高的值。
记录
表中有多少行。
M.recordlength
平均行长。这是具有固定长度行的表的确切行长,因为所有行的长度都相同。
包装
MySQL删除字符串末尾的空格。的
包装
Value表示通过执行此操作实现的节省的百分比。Recordspace使用
使用数据文件的百分比。
空的空间
数据文件未使用的百分比是多少?
块/记录
每行的平均块数(即一个碎片行由多少个链接组成)。对于固定格式的表,这始终是1.0版本。这个值应该尽可能接近1.0。如果它变得太大,您可以重新组织表。看到第7.6.4节,“MyISAM表优化”.
Recordblocks
使用了多少块(链接)。对于固定格式的表,这与行数相同。
Deleteblocks
删除了多少块(链接)。
Recorddata
数据文件中使用了多少字节。
删除的数据
数据文件中有多少字节被删除(未使用)。
失落的空间
如果将行更新为更短的长度,则会丢失一些空间。这是所有这些损失的总和,以字节为单位。
Linkdata
当使用动态表格式时,行片段用指针链接(每个指针4到7个字节)。
Linkdata
所有此类指针所使用的存储空间的总和。