10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.5 mb
PDF (A4)- 41.6 mb
手册页(TGZ)- 262.1 kb
手册页(Zip)- 372.3 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

4.6.4.5使用myisamchk获取表信息

项的描述MyISAM表或统计信息,使用这里显示的命令。本节稍后将解释这些命令的输出。

  • myisamchk - dtbl_name

    运行myisamchk描述模式生成表的描述。如果启动MySQL服务器时禁用了外部锁定,myisamchk可报告在运行时更新的表的错误。然而,由于myisamchk在描述模式下不改变表,没有破坏数据的风险。

  • myisamchk dvtbl_name

    添加- v运行myisamchk在verbose模式,以便它产生更多关于表的信息。添加- v第二次会产生更多的信息。

  • myisamchk eistbl_name

    只显示表中最重要的信息。这个操作很慢,因为它必须读取整个表。

  • myisamchk -eivtbl_name

    这就像eis,但告诉你正在做什么。

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。

输出的最后一部分提供了关于每列的信息:

  • 列号。

  • 开始

    列在表行中的字节位置。

  • 长度

    列的长度,以字节为单位。

  • NullposNullbit

    对于可以是的列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所有此类指针所使用的存储空间的总和。