MySQL 支持多种数据表类型。比较重要的 3 种类型是:MyISAM、InnoDB、Heap
默认的数据表类型由 MySQL 配置文件里的 default-table-type 决定
MySQL 版本支持哪些数据表类型,可以通过 SHOW ENGINES 命令来查看
MyISAM
特点:成熟、稳定、易于管理
内部:可以细分 静态 和 动态 两种,MySQL服务器将自行选择它认为最适合的一种来使用
1.MyISAM Static(静态 MyISAM)
数据表里的数据列各自都有预先定义好的固定长度时,就会自动选择该类型。
这种数据表的数据存取(SELECT、INSERT、UPDATE、DELETE)效率非常高。安全性也高,即使出现文件受损或其他问题,数据记录的提取和恢复工作相比其他类型要容易。
2.MyISAM Dynamic(动态 MyISAM)
数据表定义出现 VARCHAR、xxxTEXT、xxxBLOB 类型字段,就会自动选择该类型。
与 静态MyISAM 相比,该类型的数据表的空间需求量往往小得多,存储 字符串 和 二进制对象 所需要的字节数都是它们的实际长度(VARCHAR多了标记长度的1~2字节)。
因为是不定长度,记录被修改时,就可能导致同一条记录的各个字段不一定存储在一个连续的字节块里,而是分散各处(会引起碎片化)。当编辑的数据表变得越来越碎片化,数据存取消耗的时间也就越长。所以常需要通过 SQL 命令 OPTIMIZE TABLE 或 优化工具(如 myiamchk) 进行碎片整理
3.MyISAM Compressed(压缩MyISAM)
动态 和 静态 MyISAM,都可以用 myiasmchk 工具压缩。压缩效果可以使数据表的空间占用量减少到原来的一半以下。但是注意,压缩后,不能再对它们进行修改,等于变成了只读数据表
MyISAM 数据表驱动程序把每个数据表分别保存在它自己的文件里,这些文件会根据实际情况增大或缩小
每个 MyISAM 表格以三种格式存储在磁盘上:
⚫ “.frm”文件 存储表定义
⚫ 数据文件具有“.MYD”(MYData)扩展名
⚫ 索引文件具有“.MYI”(MYIndex)扩展名
本文介绍了MySQL中的三种重要数据表类型:MyISAM(静态和动态,包括压缩)、InnoDB和Heap。MyISAM以其高效和稳定性见长,但可能面临碎片化问题;InnoDB提供事务支持,适合高并发;Heap非聚集,适用于特殊场景。
159

被折叠的 条评论
为什么被折叠?



