在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。