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更灵活

相关文章:

  • 2022-12-23
  • 2021-10-20
  • 2021-11-27
  • 2021-07-07
  • 2021-10-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2018-08-08
  • 2021-09-21
  • 2021-10-02
  • 2021-10-08
  • 2021-04-25
  • 2021-12-17
  • 2021-12-13
相关资源
相似解决方案