在数据库中,MyISAM存储引擎的每一个表都被存放为三个以表名命名的物理文件
。首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm文件
,另外还有.MYD和.MYI文件,分别存放了表的数据(.MYD)
和索引数据(.MYI)
。每个表都有且仅有这样三个文件作为MyISAM存储类型的表的存储,也就是说不管这个表有多少个索引,都存放在同一个.MYI文件中。
可靠性
MyISAM存储引擎的表是否足够可靠呢?在MySQL用户参考手册中列出了遇到如下情况时可能会出现的表文件损坏:
(1)当MySQL正在做写操作的时候被中止(kill)或其他情况造成异常终止;
(2)主机崩溃(crash);
(3)磁盘硬件故障;
(4)MyISAM存储引擎中的Bug。
MyISAM存储引擎的某个表文件出错之后,仅影响到该表,不会影响到其他表,更不会影响到数据库
。如果数据库正在运行过程中发现某个MyISAM表出现问题了,则可以在线通过Check Table命令来尝试校验它,并可以通过repair table命令来尝试修复。在数据库关闭状态下,也可以通过myisamchk工具来对数据库中的某个(或某些)表进行检测或修复。不过建议不到万不得已不要轻易对表进行修复操作,修复之前尽量做好可能的备份工作,以免带来不必要的后果。
总结
- MyISAM存储引擎的每一个表都被存放为三个以表名命名的物理文件
- 可靠性还可以
- 数据 索引分开存储