15.2 MyISAM 存储引擎

MyISAM基于较旧(且不再可用)的ISAM存储引擎,但具有许多有用的扩展。

table15.2 MyISAM 存储引擎功能

Feature Support
B-tree indexes Yes
备份/时间点恢复 (在服务器中而不是在存储引擎中实现.) Yes
集群数据库支持 No
Clustered indexes No
Compressed data 是(仅当使用压缩行格式时才支持压缩 MyISAMtable.将压缩行格式与 MyISAM 一起使用的 table 是只读的.)
Data caches No
Encrypted data 是(通过加密功能在服务器中实现.)
外键支持 No
全文搜索索引 Yes
地理空间数据类型支持 Yes
地理空间索引支持 Yes
Hash indexes No
Index caches Yes
Locking granularity Table
MVCC No
复制支持 (在服务器中而不是在存储引擎中实现.) Yes
Storage limits 256TB
T-tree indexes No
Transactions No
更新数据字典的统计信息 Yes

每个MyISAMtable 都以三个文件存储在磁盘上。这些文件的名称以 table 名开头,并具有 extensions 以指示文件类型。 .frm文件存储 table 格式。数据文件具有.MYD(MYData)extensions。索引文件具有.MYI(MYIndex)extensions。

要明确指定您想要MyISAMtable,请使用ENGINEtable 选项进行指示:

CREATE TABLE t (i INT) ENGINE = MYISAM;

在 MySQL 5.7 中,通常必须使用ENGINE来指定MyISAM存储引擎,因为InnoDB是默认引擎。

您可以使用mysqlcheckClient 端或myisamchkUtil 检查或修复MyISAMtable。您还可以使用myisampack压缩MyISAMtable 以减少占用的空间。参见第 4.5.3 节“ mysqlcheck-table 维护程序”第 4.6.3 节“ myisamchk-MyISAMtable 维护 Util”第 4.6.5 节“ myisampack —生成压缩的只读 MyISAMtable”

MyISAMtable 具有以下 Feature:

先存储低字节数据没有明显的速度损失;table 行中的字节通常是未对齐的,因此按 Sequences 读取未对齐的字节要比按相反的 Sequences 花费更多的处理。而且,与其他代码相比,服务器中获取列值的代码不是时间紧迫的。

每个索引的最大列数为 16.

MyISAM还支持以下功能:

Additional Resources

首页