存储引擎 InnoDB 存储相同的数据需要的空间比 MyISAM 大,这是大家都知道的,因为MyISAM对数据进行了压缩。
但是今天我看到了一个奇怪的现象,相同的表,相同的数据,InnoDB占用的存储空间比MyISAM竟然要小。
创建一个表
CREATE TABLE `zf1` (
`id` int(11) NOT NULL,
`c` char(120) NOT NULL DEFAULT ''
) ENGINE=InnoDB
CREATE TABLE `zf2` (
`id` int(11) NOT NULL,
`c` char(120) NOT NULL DEFAULT ''
) ENGINE=MyISAM
这样的话,MyISAM比InnoDB 大
---------------------------------------------------------------------------------------------------------
CREATE TABLE `zf1` (
`id` int(11) NOT NULL,
`c` varchar(120) NOT NULL DEFAULT ''
) ENGINE=InnoDB
CREATE TABLE `zf2` (
`id` int(11) NOT NULL,
`c` varchar(120) NOT NULL DEFAULT ''
) ENGINE=MyISAM
这样的话,MyISAM比InnoDB 小
看到这个现象的时候,经过各方搜索,排查。终于发现了当表的字段是CHAR(分配固定空间)的时候,用MyISAM的话rows_format会默认使用fixed,这时候即使字段为空也会分配空间(而上面建表的时候c字段的默认值是空),而InnoDB的rows_format是compact,空值的情况不会分配空间,就造成了MyISAM看起来比InnoDB大。而当字段都是varchar(动态分配空间)的时候就不会出现这个问题。
因此,将上面那个有CHAR字段的MyISAM表的rows_format改成dynamic动态的,这时候char字段中的空值就不会被分配空间,就会看到MyISAM还是比InnoDB小。或者将所有char字段都填充成非空值,也是MyISAM小。

Mysql InnoDB 比 MyISAM 更节省空间 ?相关推荐

  1. 数据库使用--MySQL: InnoDB 还是 MyISAM?

    MyISAM存储引擎 MyISAM是 默认存储引擎.它基于更老的ISAM代码,但有很多有用的扩展.MyISAM存储引擎的一些特征: ·      所有数据值先存储低字节.这使得数据机和操作系统分离.二 ...

  2. MySQL: InnoDB 还是 MyISAM?

    MyISAM存储引擎 MyISAM是 默认存储引擎.它基于更老的ISAM代码,但有很多有用的扩展.MyISAM存储引擎的一些特征: ·      所有数据值先存储低字节.这使得数据机和操作系统分离.二 ...

  3. mysql innodb和myisam区别_MySQL?存储引擎简介

    ​大家好,我是anyux.本文介绍MySQL存储引擎. 简介 相当于Linux文件系统,只不过比文件系统强大 功能 数据读写 数据安全和一致性 提高性能 热备份 自动故障恢复 高可用方面支持 引擎类别 ...

  4. MySql InnoDB与MyISAM的区别

    一.InnoDB与MyISAM的区别? 存储引擎是对底层物理数据执行实际操作的组件,为Server服务层提供各种操作数据的API.常用的存储引擎有InnoDB.MyISAM.Memory.这里我们主要 ...

  5. Mysql——Innodb和Myisam概念与数据恢复

    Innodb和Myisam是Mysql常见的两种数据存储引擎.没有研究过Oracle.SQL Server等数据库,所以下面只针对Mysql. 一.两种方式的数据存储结构: 在Myisam下,数据库的 ...

  6. mysql innodb和myisam比较

    2019独角兽企业重金招聘Python工程师标准>>> MySQL默认采用的是MyISAM. MyISAM不支持事务,而InnoDB支持.InnoDB的AUTOCOMMIT默认是打开 ...

  7. mysql优化 wordpress_WordPress优化Mysql InnoDB转MYISAM

    昨天成功把本小站网站全部转移到西部数据,本以为皆大欢喜,但是今日刷新了一下空间使用率,我靠,Mysql数据库260多M,这是啥概念,要崩溃的节奏WordPress就这几个表,虽然我文章数达到了700多 ...

  8. 《MySQL必修课:存储引擎大揭秘!InnoDB和MyISAM究竟谁更强?》

    文章目录 本章学习目标 第一节 MySQL存储引擎 1.1 InnoDB和MyISAM对比 1.2 InnoDB存储结构 1.2.1.InnoDB内存结构 1.2.2.InnoDB磁盘结构 1.2.3 ...

  9. 面试题:MySQL的innodb和myisam

    一 Innodb 1. 简介 索引是一种排好序的用于快速查找的数据结构. **根据官网手册InnoDB支持B-tree索引.聚簇索引(Clustered indexes).全文索引(Full-text ...

最新文章

  1. 顶尖学者加盟!两所C9高校,获强援!
  2. WebSocket 实战--转
  3. web前端之异常/错误监控
  4. python 命令行 解析模块 optparse、argparse
  5. 织梦内核风吟导航QQ导航天下网址管理源码
  6. linux位置变量的应用,llinux中变量的运用
  7. python 绘制简易折线图
  8. 计算机基础e卷,大学计算机基础(e卷).doc
  9. vscode编辑器 mac 版 中文编译报错_记录一下mac上用vscode写latex文档
  10. java简单的思维逻辑训练_简单的代码,适合初学者,锻炼逻辑思维能力,可以练习练习!...
  11. 新手学三菱PLC编程的常见错误总结
  12. 计算机算法设计与分析 第4版 (王晓东) 重点题
  13. pynq z1+ov5640
  14. 十五分钟了解朱利亚集
  15. java类的使用方法小结_JavaPoet的使用指南小结
  16. 微信小程序源码案例大全
  17. Makefile的filter和filter-out
  18. 即使不考CCSP认证,也要了解的知识有哪些?
  19. 多线程之interrupt
  20. oracle 导出owner,如何知道exp导出的dmp文件中owner是谁

热门文章

  1. 华杉讲孙子学习-总结
  2. 2019 互联网月饼大 PK!快看你家公司“上榜”没?
  3. 微信公众平台 绑定微信用户OpenID与第三方业务账号
  4. 04_什么是隐式转换?什么是显式转换?
  5. 霜皮剥落紫龙鳞,下里巴人再谈数据库SQL优化,索引(一级/二级/聚簇/非聚簇)原理
  6. Win8.1以及win10以上系统 安装msi文件方法
  7. 清明梦超能力者黄YY(idx数组)
  8. 老板:把这份PPT改一下”员工:“要改你自己改!”老板懵了
  9. NR PDSCH(四) DMRS
  10. ExpRe[23] Oz[0] emacs初步,Hello world