22.214.171.124 Static (Fixed-Length) Table Characteristics
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.
MyISAM table 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:
NULLcolumns require additional space in the row to record whether their values are
NULLcolumn takes one bit extra, rounded up to the nearest byte.
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.
The expected row length in bytes for static-sized rows is calculated using the following expression:
row length = 1 + (sum of column lengths) + (number of NULL columns + delete_flag + 7)/8 + (number of variable-length columns)
delete_flagis 1 for tables with static row format. Static tables use a bit in the row record for a flag that indicates whether the row has been deleted.
delete_flagis 0 for dynamic tables because the flag is stored in the dynamic row header.