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

 

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

所以,做搜索查询量大的表一般都以空间来换取时间,设计成静态表。

 

row_format还有其他一些值:

DEFAULT

FIXED

DYNAMIC

COMPRESSED

REDUNDANT

COMPACT

 

修改行格式

ALTER TABLE table_name ROW_FORMAT =DEFAULT

 

修改过程导致:

fixed--->dynamic: 这会导致CHAR变成VARCHAR

dynamic--->fixed: 这会导致VARCHAR变成CHAR

 

Row_format

The row format. For a MyISAM table, this can be Dynamic, Fixed,orCompressed.

Dynamic rows vary in length because they contain variable-lengthfields such as

VARCHAR or BLOB. Fixed rows, which are always the same size, aremade up of

fields that don’t vary in length, such as CHAR and INTEGER.Compressed rows exist

only in compressed tables.

MyISAM是可以修改row_format的,InnoDB测试了一下不行,都是Default的COMPACT。