mysql -N -e "SELECT TABLE_SCHEMA, TABLE_NAME, ENGINE, ROW_FORMAT FROM INFORMATION_SCHEMA.TABLES WHERE ENGINE = 'InnoDB' AND ROW_FORMAT = 'Compact' AND TABLE_SCHEMA != 'mysql';" | while read d t e r; do echo "ALTER TABLE $d.$t ROW_FORMAT=DYNAMIC;"; done
ALTER TABLE test1.t1 ROW_FORMAT=DYNAMIC;
before
mysql -e "SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE 't1' \G" test1
*************************** 1. row ***************************
TABLE_CATALOG: def
TABLE_SCHEMA: test1
TABLE_NAME: t1
TABLE_TYPE: BASE TABLE
ENGINE: InnoDB
VERSION: 10
ROW_FORMAT: Compact
TABLE_ROWS: 4448
AVG_ROW_LENGTH: 4140
DATA_LENGTH: 18415616
MAX_DATA_LENGTH: 0
INDEX_LENGTH: 2949120
DATA_FREE: 4194304
AUTO_INCREMENT: 5555
CREATE_TIME: 2018-04-24 02:41:30
UPDATE_TIME: NULL
CHECK_TIME: NULL
TABLE_COLLATION: utf8_general_ci
CHECKSUM: NULL
CREATE_OPTIONS:
TABLE_COMMENT:
convert table from ROW_FORMAT COMPACT to DYNAMIC
mysql -e "ALTER TABLE test1.t1 ROW_FORMAT=DYNAMIC;"
after
mysql -e "SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE 't1' \G" test1
*************************** 1. row ***************************
TABLE_CATALOG: def
TABLE_SCHEMA: test1
TABLE_NAME: t1
TABLE_TYPE: BASE TABLE
ENGINE: InnoDB
VERSION: 10
ROW_FORMAT: Dynamic
TABLE_ROWS: 4448
AVG_ROW_LENGTH: 4140
DATA_LENGTH: 18415616
MAX_DATA_LENGTH: 0
INDEX_LENGTH: 2949120
DATA_FREE: 0
AUTO_INCREMENT: 5555
CREATE_TIME: 2018-04-30 00:41:15
UPDATE_TIME: NULL
CHECK_TIME: NULL
TABLE_COLLATION: utf8_general_ci
CHECKSUM: NULL
CREATE_OPTIONS: row_format=DYNAMIC
TABLE_COMMENT: