Of the three
MyISAM storage formats, static
format is the simplest and most secure (least subject to
corruption). It is also the fastest of the on-disk formats due
to the ease with which rows in the data file can be found on
disk: To look up a row based on a row number in the index,
multiply the row number by the row length to calculate the row
position. Also, when scanning a table, it is very easy to read a
constant number of rows with each disk read operation.
The security is evidenced if your computer crashes while the
MySQL server is writing to a fixed-format
MyISAM file. In this case,
myisamchk can easily determine where each row
starts and ends, so it can usually reclaim all rows except the
partially written one. Note that
indexes can always be reconstructed based on the data rows.
Fixed-length row format is only available for tables without
TEXT columns. Creating a table
with these columns with an explicit
ROW_FORMAT clause will not raise an error
or warning; the format specification will be ignored.
Static-format tables have these characteristics:
VARCHAR columns are
space-padded to the specified column width, although the
column type is not altered. This is also true for
DECIMAL columns created
before MySQL 5.0.3.
VARBINARY columns are
space-padded to the column width before MySQL 5.0.15. As of
VARBINARY columns are padded
Easy to cache.
Easy to reconstruct after a crash, because rows are located in fixed positions.
Usually require more disk space than dynamic-format tables.