您的位置:首页 > 数据库 > MySQL

MYSQL入门学习之二十六:MySQL存储引擎简介 之 MyISAM

2014-07-30 09:31 651 查看

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性能调优与架构设计》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: