14.1.3.1. Static (Fixed-Length) Table Characteristics
Static format is the default for MyISAM
tables. It is used when the table contains no variable-length
columns (VARCHAR
,
VARBINARY
, BLOB
, or
TEXT
). Each row is stored using a fixed
number of bytes.
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 MyISAM
table indexes can always be reconstructed based on the data
rows.
Static-format tables have these characteristics:
CHAR
columns are space-padded to the
column width. BINARY
columns are padded
with 0x00
bytes to the column width.
Very quick.
Easy to cache.
Easy to reconstruct after a crash, because rows are
located in fixed positions.
Reorganization is unnecessary unless you delete a huge
number of rows and want to return free disk space to the
operating system. To do this, use OPTIMIZE
TABLE
or myisamchk -r.
Usually require more disk space than dynamic-format
tables.