11、MySQL 8.0参考手册 4.6.4.5使用myisamchk获取表信息
2018-03-23 09:45
573 查看
要获得
myi
4000
samchk -dv
myisamchk -eis
myisamchk -eiv
所述
输出的最后部分提供有关每列的信息:
该
本文由学什么技术好网翻译
MyISAM关于它的表格或统计数据的描述,请使用这里显示的命令。这些命令的输出将在本节稍后介绍。myisamchk -d
tbl_name在“ 描述模式 ”中 运行myisamchk以生成表格的描述。如果启用禁用外部锁定的MySQL服务器,则 myisamchk可能会报告运行时更新的表的错误。但是,由于 myisamchk不以描述模式更改表,因此不存在破坏数据的风险。
myi
4000
samchk -dv
tbl_name以详细模式 添加
-v运行myisamchk,以便它产生更多关于表的信息。
-v再次添加会产生更多信息。
myisamchk -eis
tbl_name只显示表格中最重要的信息。此操作很慢,因为它必须读取整个表格。
myisamchk -eiv
tbl_name这就像
-eis,但告诉你正在做什么。
所述
tbl_name参数可以是任一的名称
MyISAM表或它的索引文件的名称,如在第4.6.4节“ myisamchk的 - MyISAM表的维护工具”。
tbl_name可以给出多个参数。假设一个名为表
person的结构如下。(
MAX_ROWS包含表格选项,以便后面显示的myisamchk输出示例 中,某些值较小,更容易适合输出格式。)
CREATE TABLE person ( id INT NOT NULL AUTO_INCREMENT, last_name VARCHAR(20) NOT NULL, first_name VARCHAR(20) NOT NULL, birth DATE, death DATE, PRIMARY KEY (id), INDEX (last_name, first_name), INDEX (birth) ) MAX_ROWS = 1000000 ENGINE=MYISAM;还假设该表具有这些数据和索引文件大小:
-rw-rw---- 1 mysql mysql 9347072 Aug 19 11:47 person.MYD -rw-rw---- 1 mysql mysql 6066176 Aug 19 11:47 person.MYImyisamchk -dvv输出 示例:
MyISAM file: person Record format: Packed Character set: utf8mb4_0900_ai_ci (255) File-version: 1 Creation time: 2017-03-30 21:21:30 Status: checked,analyzed,optimized keys,sorted index pages Auto increment key: 1 Last value: 306688 Data records: 306688 Deleted blocks: 0 Datafile parts: 306688 Deleted data: 0 Datafile pointer (bytes): 4 Keyfile pointer (bytes): 3 Datafile length: 9347072 Keyfile length: 6066176 Max datafile length: 4294967294 Max keyfile length: 17179868159 Recordlength: 54 table description: Key Start Len Index Type Rec/key Root Blocksize 1 2 4 unique long 1 1024 2 6 80 multip. varchar prefix 0 1024 87 80 varchar 0 3 168 3 multip. uint24 NULL 0 1024 Field Start Length Nullpos Nullbit Type 1 1 1 2 2 4 no zeros 3 6 81 varchar 4 87 81 varchar 5 168 3 1 1 no zeros 6 171 3 1 2 no zeros这里给出了myisamchk产生 的信息类型的解释 。 “ 密钥文件”是指索引文件。 “ 记录 ”和“ 行 ”是同义词,“ 字段 ”和“ 列 ”同义。”表格描述的最初部分包含以下值:
MyISAM file
MyISAM(索引)文件的 名称。
Record format用于存储表格行的格式。前面的例子使用
Fixed length。其他可能的值是
Compressed和
Packed。(
Packed对应于什么
SHOW TABLE STATUS报告
Dynamic)。
Chararacter set表格默认字符集。
File-version
MyISAM格式 版本。总是1。
Creation time当数据文件被创建时。
Recover time索引/数据文件上次重建时。
Status表状态标志。可能的值是
crashed,
open,
changed,
analyzed,
optimized keys,和
sorted index pages。
Auto increment key,
Last value关键字编号与表格
AUTO_INCREMENT列相关联 ,以及该列最近生成的值。如果没有这样的列,这些字段不会出现。
Data records表中的行数。
Deleted blocks有多少删除的块仍然有保留空间。您可以优化您的桌子以尽量减少这个空间。请参阅 第7.6.4节“MyISAM表优化”。
Datafile parts对于动态行格式,这表示有多少个数据块。对于没有分段行的优化表,这与之相同
Data records。
Deleted data有多少字节的未重复删除的数据存在。您可以优化您的桌子以尽量减少这个空间。请参阅 第7.6.4节“MyISAM表优化”。
Datafile pointer数据文件指针的大小,以字节为单位。它通常是2,3,4或5个字节。大多数表格使用2个字节进行管理,但是这不能由MySQL控制。对于固定表,这是一个行地址。对于动态表,这是一个字节地址。
Keyfile pointer索引文件指针的大小,以字节为单位。它通常是1个,2个或3个字节。大多数表管理2个字节,但这是MySQL自动计算的。它总是一个块地址。
Max datafile length表格数据文件可以变成多长时间,以字节为单位。
Max keyfile length表索引文件可以变成多长时间,以字节为单位。
Recordlength每行需要多少空间,以字节为单位。
table description输出 的部分包括表中所有键的列表。对于每个键, myisamchk显示一些底层信息:
Key此密钥的号码。该值仅显示在密钥的第一列。如果缺少此值,则该行对应于多列键的第二列或更晚列。对于示例中显示的表格,
table description第二个索引有两行。这表明它是一个由两部分组成的多部分索引。
Start索引的这一部分在哪里开始。
Len这部分指数是多久。对于包装数字,这应始终是该列的全长。对于字符串,它可能比索引列的全长短,因为您可以索引字符串列的前缀。多部分键的总长度是
Len所有关键部分的值的总和。
Index索引中是否存在多次键值。可能的值是
unique或
multip.(多个)。
Type什么数据类型的这部分索引有。这是一个
MyISAM与可能的值的数据类型
packed,
stripped或
empty。
Root根索引块的地址。
Blocksize每个索引块的大小。默认情况下这是1024,但是当从源生成MySQL时,可能会在编译时更改该值。
Rec/key这是优化器使用的统计值。它告诉这个索引每个值有多少行。一个唯一的索引值始终为1.这可能会在使用myisamchk -a加载(或大大更改)表后更新。如果完全没有更新,则给出默认值30。
输出的最后部分提供有关每列的信息:
Field列号。
Start表格行内列的字节位置。
Length列的长度(以字节为单位)。
Nullpos,
Nullbit对于可能的列
NULL,
MyISAM将
NULL值作为标志存储在一个字节中。根据有多少可空列,可以有一个或多个字节用于此目的。的
Nullpos和
Nullbit值时,如果非空,指示哪些字节和位包含标志,指示该列是否为
NULL。用于存储
NULL标志的字节的位置和数量 显示在字段1的行中。这就是为什么表格有六
Field行,
person即使它只有五列。
Type数据类型。该值可能包含以下任何描述符:
constant所有行都具有相同的值。
no endspace不要存储端点空间。
no endspace, not_always不要存储端点空间,也不要对所有值进行端点空间压缩。
no endspace, no empty不要存储端点空间。不要存储空值。
table-lookup该列已转换为
ENUM。
zerofill(N
)该N值中最重要的字节总是为0并且不被存储。
no zeros不要存储零。
always zero零值使用一位存储。
Huff tree与该列关联的霍夫曼树的编号。
Bits霍夫曼树中使用的位数。
该
Huff tree和
Bits如果表已经被压缩与显示领域 的myisampack。有关此信息的示例,请参见第4.6.6节“ myisampack - 生成压缩的,只读的MyISAM表”。myisamchk -eiv输出 示例:
Checking MyISAM file: person Data records: 306688 Deleted blocks: 0 - check file-size - check record delete-chain No recordlinks - check key delete-chain block_size 1024: - check index reference - check data record references index: 1 Key: 1: Keyblocks used: 98% Packed: 0% Max levels: 3 - check data record references index: 2 Key: 2: Keyblocks used: 99% Packed: 97% Max levels: 3 - check data record references index: 3 Key: 3: Keyblocks used: 98% Packed: -14% Max levels: 3 Total: Keyblocks used: 98% Packed: 89% - check records and index references *** LOTS OF ROW NUMBERS DELETED *** Records: 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 User time 43.08, System time 1.68 Maximum resident set size 0, Integral resident set size 0 Non-physical pagefaults 0, Physical pagefaults 0, Swaps 0 Blocks in 0 out 7, Messages in 0 out 0, Signals 0 Voluntary context switches 0, Involuntary context switches 0 Maximum memory usage: 1046926 bytes (1023k)myisamchk -eiv输出包含以下信息:
Data records表中的行数。
Deleted blocks有多少删除的块仍然有保留空间。您可以优化您的桌子以尽量减少这个空间。请参阅 第7.6.4节“MyISAM表优化”。
Key关键号码。
Keyblocks used使用哪些关键块的百分比。当一张桌子刚刚用myisamchk重组时,数值非常高(非常接近理论最大值)。
PackedMySQL试图打包具有通用后缀的键值。这只能用于索引
CHAR和
VARCHAR列。对于具有相似最左部分的长索引字符串,这可以显着减少使用的空间。在前面的例子中,第二个关键字长度为40个字节,空间减少了97%。
Max levels此密钥的B树有多深。具有长键值的大表格会获得较高的值。
Records表中有多少行。
M.recordlength平均行长。这是具有固定长度行的表的确切行长度,因为所有行都具有相同的长度。
PackedMySQL从字符串的末尾剥去空格。该
Packed值表示通过这样做所实现的节省的百分比。
Recordspace used数据文件使用的百分比。
Empty space数据文件的百分比未被使用。
Blocks/Record每行的平均块数(即一个分段行由多少个链接组成)。对于固定格式的表,这总是1.0。该值应尽可能接近1.0。如果太大,您可以重新组织表格。请参阅第7.6.4节“MyISAM表优化”。
Recordblocks使用了多少块(链接)。对于固定格式的表格,这与行数相同。
Deleteblocks有多少块(链接)被删除。
Recorddata数据文件中使用了多少个字节。
Deleted data数据文件中有多少字节被删除(未使用)。
Lost space如果一行被更新为更短的长度,则会丢失一些空间。这是所有这些损失的总和,以字节为单位。
Linkdata当使用动态表格格式时,行片段与指针(每个4到7个字节)链接。
Linkdata是所有这些指针使用的存储量的总和。
本文由学什么技术好网翻译
相关文章推荐
- 11、MySQL 8.0参考手册 4.6.4.6 myisamchk内存使用情况
- 6、MySQL 8.0参考手册 获取有关数据库和表格的信息
- 11、MySQL 8.0参考手册 4.6.4.2 myisamchk检查选项
- 4、MySQL 8.0参考手册 连接到服务器并断开连接3.3.4从表中检索信息
- 5、MySQL 8.0参考手册 3.3.4.6使用NULL值
- 10、MySQL 8.0参考手册 4.6.3 myisam_ftdump - 显示全文索引信息
- 7、MySQL 8.0参考手册 在批处理模式下使用mysql
- 11、MySQL 8.0参考手册 4.6.4.4其他myisamchk选项
- 5、MySQL 8.0参考手册 3.3.4.9使用多个表
- 18,MySQL 8.0参考手册4.6.8.3使用mysqlbinlog备份二进制日志文件
- 11、MySQL 8.0参考手册 4.6.4 myisamchk - MyISAM表维护实用程序
- 11、MySQL 8.0参考手册 4.6.4.1 myisamchk一般选项
- 10、MySQL 8.0参考手册 4.5.8 mysqlshow - 显示数据库,表和列信息
- 25,MySQL 8.0参考手册 5.1.9.5从代理获取IPv6地址
- 11、MySQL 8.0参考手册 4.6.4.3 myisamchk修复选项
- MySQL 8.0参考手册 3.3.4.5日期计算
- MySQL使用information_schema获取锁表信息
- 5、MySQL 8.0参考手册 3.3.4.4排序行
- 5、MySQL 8.0参考手册 3.3.4.3选择特定的列
- 2、MySQL 8.0参考手册 连接到服务器并断开连接