MyISAM 是MySQL 最早的ISAM 存储引擎的升级版本,也是MySQL 默认的存储引擎。
1、MyISAM 存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件。每个表都有且仅有这样三个文件做为MyISAM 存储类型的表的存储。
(1)、.frm 文件:存放表结构定义信息
(2)、.MY文件D:存放表的数据
(3)、.MYI文件:存放索引数据
每个表都有且仅有这样三
个文件做为MyISAM 存储类型的表的存储
2、MyISAM 支持以下三种类型的索引:
(1)、B-Tree 索引
所有的索引节点都按照balance tree 的数据结构来存储,所有的索引数据节点都在叶节点。
(2)、R-Tree 索引
主要设计用于为存储空间和多维数据的字段做索引。
(3)、Full-text 索引
即全文索引,存储结构也是b-tree。主要是为了解决在需要用like 查询的低效问题。
MyISAM 的B-Tree 索引有一个较大的限制,那就是参与一个索引的所有字段的长度之和不能超过1000 字节。
3、MyISAM表的存放格式
(1)、静态(FIXED)固定长度
如果表中没有任何可变长度的字段,则为FIXED 格式。
(2)、动态(DYNAMIC)可变长度
只要表中有可变长度类型的字段存在,那么该表就肯定是DYNAMIC 格式的。
(3)、压缩(COMPRESSED)格式
在创建表的时候通过ROW_FORMAT 来指定{COMPRESSED | DEFAULT},也可以通过myisampack 工具来进行压缩,默认是不压缩的。
MyISAM 存储引擎的某个表文件出错之后,仅影响到该表,而不会影响到其他表,更不会影响到其他的数据库。
如果数据库正在运行过程中发现某个MyISAM 表出现问题了,则可以在线通过check table 命令来尝试校验,并可以通过repair table 命令来尝试修复。
在数据库关闭状态下,也可以通过myisamchk 工具来对数据库中某个(或某些)表进行检测或者修复。
不过强烈建议不到万不得已不要轻易对表进行修复操作,修复之前尽量做好可能的备份工作,以免带来不必要的后果。
参考:《MySQL性能调优与架构设计》
1、MyISAM 存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件。每个表都有且仅有这样三个文件做为MyISAM 存储类型的表的存储。
(1)、.frm 文件:存放表结构定义信息
(2)、.MY文件D:存放表的数据
(3)、.MYI文件:存放索引数据
每个表都有且仅有这样三
个文件做为MyISAM 存储类型的表的存储
2、MyISAM 支持以下三种类型的索引:
(1)、B-Tree 索引
所有的索引节点都按照balance tree 的数据结构来存储,所有的索引数据节点都在叶节点。
(2)、R-Tree 索引
主要设计用于为存储空间和多维数据的字段做索引。
(3)、Full-text 索引
即全文索引,存储结构也是b-tree。主要是为了解决在需要用like 查询的低效问题。
MyISAM 的B-Tree 索引有一个较大的限制,那就是参与一个索引的所有字段的长度之和不能超过1000 字节。
3、MyISAM表的存放格式
(1)、静态(FIXED)固定长度
如果表中没有任何可变长度的字段,则为FIXED 格式。
(2)、动态(DYNAMIC)可变长度
只要表中有可变长度类型的字段存在,那么该表就肯定是DYNAMIC 格式的。
(3)、压缩(COMPRESSED)格式
在创建表的时候通过ROW_FORMAT 来指定{COMPRESSED | DEFAULT},也可以通过myisampack 工具来进行压缩,默认是不压缩的。
MyISAM 存储引擎的某个表文件出错之后,仅影响到该表,而不会影响到其他表,更不会影响到其他的数据库。
如果数据库正在运行过程中发现某个MyISAM 表出现问题了,则可以在线通过check table 命令来尝试校验,并可以通过repair table 命令来尝试修复。
在数据库关闭状态下,也可以通过myisamchk 工具来对数据库中某个(或某些)表进行检测或者修复。
不过强烈建议不到万不得已不要轻易对表进行修复操作,修复之前尽量做好可能的备份工作,以免带来不必要的后果。
参考:《MySQL性能调优与架构设计》