InnoDB的4种行格式

举报
福州司马懿 发表于 2025/01/26 10:32:54 2025/01/26
【摘要】 InnoDB是MySQL数据库的一个存储引擎,它支持以下几种行格式(row format):REDUNDANT:这是InnoDB的原始行格式,也是最早的格式。它提供了较好的兼容性,但是存储效率不是很高。COMPACT:从MySQL 5.1开始引入,COMPACT格式比REDUNDANT格式更高效,因为它减少了存储行所需的空间。它通过压缩行的一些元数据来减少存储空间的使用。DYNAMIC:从M...

InnoDB是MySQL数据库的一个存储引擎,它支持以下几种行格式(row format):

  1. REDUNDANT
    • 这是InnoDB的原始行格式,也是最早的格式。
    • 它提供了较好的兼容性,但是存储效率不是很高。
  2. COMPACT
    • 从MySQL 5.1开始引入,COMPACT格式比REDUNDANT格式更高效,因为它减少了存储行所需的空间。
    • 它通过压缩行的一些元数据来减少存储空间的使用。
  3. DYNAMIC
    • 从MySQL 5.1开始引入,DYNAMIC格式是COMPACT格式的扩展。
    • 它对COMPACT格式进行了改进,特别是对于存储可变长度列(例如VARCHAR、BLOB和TEXT)的数据,DYNAMIC格式可以更加高效地处理这些列,因为它只存储实际使用的空间,而不是为这些列预留固定大小的空间。
  4. COMPRESSED
    • 这是DYNAMIC格式的一个变体,它提供了对整页压缩的支持。
    • 使用COMPRESSED格式可以显著减少磁盘空间的使用,但是会增加CPU的使用,因为需要压缩和解压缩数据页。
      在创建或修改表时,可以通过ROW_FORMAT选项来指定行格式。例如:
CREATE TABLE my_table (
    id INT AUTO_INCREMENT PRIMARY KEY,
    data VARCHAR(255)
) ENGINE=InnoDB ROW_FORMAT=COMPACT;

或者,如果你想修改现有表的行格式,可以使用如下命令:

ALTER TABLE my_table ROW_FORMAT=DYNAMIC;

需要注意的是,不同的行格式可能会影响性能,尤其是在读写大量数据时。选择哪种行格式取决于你的具体需求,比如对存储空间的考虑、性能要求以及对兼容性的需求。在大多数现代部署中,DYNAMIC格式是默认和推荐的选择。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。