15.2.3.1 静态(固定长度)tableFeature

MyISAMtable 的默认格式是静态格式。当 table 不包含可变长度的列(VARCHARVARBINARYBLOBTEXT)时,将使用它。每行使用固定数量的字节存储。

在这三种MyISAM存储格式中,静态格式是最简单和最安全的(最容易损坏)。由于可以轻松在磁盘上找到数据文件中的行,因此它也是最快的磁盘格式:要基于索引中的行号查找行,请将行号乘以行长计算行位置。而且,在扫描 table 时,每次磁盘读取操作都非常容易读取恒定数量的行。

如果您的计算机在 MySQL 服务器写入固定格式的MyISAM文件时崩溃,则可以证明其安全性。在这种情况下,myisamchk可以轻松确定每一行的开始和结束位置,因此通常可以回收除部分写入的行之外的所有行。始终可以根据数据行重建MyISAMtable 索引。

Note

定长行格式仅适用于没有BLOBTEXT列的 table。使用带有明确的ROW_FORMAT子句的这些列创建 table 不会引发错误或警告;格式规范将被忽略。

静态格式 table 具有以下 Feature:

row length = 1
             + (sum of column lengths)
             + (number of NULL columns + delete_flag + 7)/8
             + (number of variable-length columns)
首页