innodb 一般對應 Compact ,MyISAM 一般對應靜態與動態
mysql中若一張表里面存在varchar、text以及其變形、blob以及其變形的字段的話,那么這個表其實也叫動態表,即該表的 row_format是dynamic,就是說每條記錄所占用的字節是動態的。其優點節省空間,缺點增加讀取的時間開銷。反之,這張表叫靜態表,該表 row_format為fixed,即每條記錄占用字節一樣。優點讀取快,缺點浪費部分空間
所以,做搜索查詢量大的表一般都以空間來換取時間,設計成靜態表。
row_format還有其他一些值:
DEFAULT
FIXED
DYNAMIC
COMPRESSED
REDUNDANT
COMPACT
修改行格式
ALTER TABLE table_name ROW_FORMAT = DEFAULT
修改過程導致:
fixed--->dynamic: 這會導致CHAR變成VARCHAR
dynamic--->fixed: 這會導致VARCHAR變成CHAR