首页 > 数据库技术 > 详细

mysql的InnoDB引擎的行记录格式ROW_FORMAT

时间:2021-02-18 23:29:09      阅读:30      评论:0      收藏:0      [点我收藏+]

mysql中, 若一张表里面不存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫静态表,即该表的row_format是fixed,就是说每条记录所占用的字节一样。其优点读取快,缺点浪费额外一部分空间。

 若一张表里面存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫动态表,即该表的row_format是dynamic,就是说每条记录所占用的字节是动态的。其优点节省空间,缺点增加读取的时间开销。

 

row_format还有其他一些值:

DEFAULT

FIXED--静态

DYNAMIC--动态

COMPRESSED

REDUNDANT

COMPACT

 

fixed:默认格式,

当表不包含变长字段(varchar / varbinary / blob / text)时使用,

每行都是固定的,所以很容易获取行在页上的具体位置,存取效率比较高,

但是占用磁盘空间较大

dynamic:

每行都有一个行头部,包含bitmap,记录列为空的情况。(字符类型长度为0,或数字类型为0,而不是NULL值)

所有字符串列都是动态存储的,除非长度小于4;

fixed->dynamic : 会导致CHAR->VARCHAR,反之亦然, 

MYISAM引擎可以修改ROW_FORMAT,InnoDB不可以,默认Compact

REDUNDANT为固长,有冗余,COMPACT更灵活

mysql的InnoDB引擎的行记录格式ROW_FORMAT

原文:https://www.cnblogs.com/wzk-0000/p/14412940.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!