MySQL数据库MylSAM数据表类型详解以及表存储格式

本文介绍了MySQL中的三种重要数据表类型:MyISAM(静态和动态,包括压缩)、InnoDB和Heap。MyISAM以其高效和稳定性见长,但可能面临碎片化问题;InnoDB提供事务支持,适合高并发;Heap非聚集,适用于特殊场景。

MySQL 支持多种数据表类型。比较重要的 3 种类型是:MyISAMInnoDBHeap

默认的数据表类型由 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)扩展名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兜兜的兜兜里的糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值