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

来源:互联网 发布:武汉蓝星软件 编辑:程序博客网 时间:2024/06/08 15:55

       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性能调优与架构设计》
0 0