【mysql】MyISAM表的存储格式
来源:互联网 发布:阿里医疗云解决方案 编辑:程序博客网 时间:2024/06/05 21:05
MyISAM支持三种不同的存储格式:固定格式,动态格式,已压缩格式(只能使用myisampack工具来创建)。
静态表特征(固定格式)
静态格式是MyISAM表的默认存储格式。当表不包含变量长度列(VARCHAR, BLOB, 或TEXT)时,使用这个格式。每一行用固定字节数存储。静态格式是三种存储格式中最简单和最安全的,同时也是最快的ondisk格式。
基本特征:
(1)CHAR列对列宽度为空间填补。
(2)快速。
(3)容易缓存。
(4)由于每个记录位置固定,崩溃后容易重建。(5)无必要重新组织,通常比动态表需要更大的磁盘空间。
动态表特征(动态格式)
如果一个MyISAM表包含任何可变长度 列(VARCHAR, BLOB或TEXTDynamic),或者如果一个表被用ROW_FORMAT=DYNAMIC选项来创建,动态存储格式被使用。
基本特征:
(1)除了长度少于4的列之外,所有的字符串列存储为动态。
(2)每个记录前存储一个位图,该位图表明哪一列包含空字符串(对于字符串列)或者0(对于数字列),但并不包括包含NULL值的列。而非空字符串列,则会被存为一个长度字节加字符串的内容。
(3)动态格式表在崩溃后要比静态格式表更难重建,因为一个记录可能被分为多个碎片且链接(碎片)可能被丢失。
(4)每个记录仅使用必需大小的空间。尽管如此,如果一个记录变大,它就按需要被分开成多片,造成记录碎片的后果。比如,你用扩展行长度的信息更新一行,该行就变得有碎片。在这种情况下,你可以时不时运行OPTIMIZE TABLE或myisamchk -r来改善性能。可使用myisamchk -ei来获取表的统计数据。
已压缩表特征
MySQL分发版本里默认包含myisampack工具,已压缩存储格式是由它创建的只读格式。
压缩表有下列特征:
(1)压缩表占据很小的磁盘空间,最小化了磁盘用量。
(2)每个记录被单独压缩,访问开支小。
(3)可以处理固定长度或动态长度记录。
(参考自 mysql官方文档)
- 【mysql】MyISAM表的存储格式
- MyISAM表的存储格式---行格式
- MySql表的两种存储类型:MyISAM 和 InnoDB
- mysql修改表的存储引擎(myisam<=>innodb)
- mysql修改表的存储引擎(myisam<=>innodb)
- MySQL的MyISAM和InnoDB存储引擎表结构
- mysql的myisam存储类型不支持事务
- MYSQL的存储引擎介绍------MyISAM引擎
- MySQL存储引擎--MyISAM
- Mysql的存储引擎之:MyISAM存储引擎
- mysql myisam表的repair
- 【MySQL】MySQL存储引擎MyISAM与Innodb的那些事
- MySQL的表类型的(存储引擎)的选择MyISAM+InnoDB+MEMORY+MERGE
- MySQL 存储引擎InnoDB/MYISAM
- MySQL 之 MyISAM存储引擎
- MySQL浅谈MyISAM存储引擎
- MYSQL 浅谈MyISAM 存储引擎
- MySQL基础知识---------MyISAM存储引擎
- Security Notes
- 流程控制的陷阱
- 如何对软件测试中用到的测试数据建模
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (一) —— 总览
- 使用mount修改你的android中/system为只读权限
- 【mysql】MyISAM表的存储格式
- 选择 LDO 的方法
- 优化eclipse
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite
- lucene 知识经验2
- Eclipse编辑器基本设置【转 】
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences
- linux RamDisk 使用简介
- 字符串转为整数