The original storage engine in MySQL was the
ISAM
engine. It was the only storage engine
available until MySQL 3.23, when the improved
MyISAM
engine was introduced as the default.
ISAM
is deprecated. As of MySQL 4.1, it is
included in the source but not enabled in binary distributions. It
is not available in MySQL 5.0. Embedded MySQL server versions do
not support ISAM
tables by default.
Due to the deprecated status of ISAM
, and
because MyISAM
is an improvement over
ISAM
, you are advised to convert any remaining
ISAM
tables to MyISAM
as
soon as possible. To convert an ISAM
table to a
MyISAM
table, use an ALTER
TABLE
statement:
mysql> ALTER TABLE tbl_name
TYPE = MYISAM;
For more information about MyISAM
, see
Section 13.1, “The MyISAM
Storage Engine”.
Each ISAM
table is stored on disk in three
files. The files have names that begin with the table name and
have an extension to indicate the file type. An
.frm
file stores the table definition. The
data file has an .ISD
extension. The index
file has an .ISM
extension.
ISAM
uses B-tree indexes.
You can check or repair ISAM
tables with the
isamchk utility. See
Section 6.6.1, “Using myisamchk for Crash Recovery”.
ISAM
has the following properties:
Compressed and fixed-length keys
Fixed and dynamic record length
16 indexes per table, with 16 key parts per key
Maximum key length 256 bytes (default)
Data values are stored in machine format; this is fast, but machine/OS dependent
Many of the properties of MyISAM
tables are
also true for ISAM
tables. However, there are
also many differences. The following list describes some of the
ways that ISAM
is distinct from
MyISAM
:
Not binary portable across OS/platforms.
Can't handle tables larger than 4GB.
Only supports prefix compression on strings.
Smaller (more restrictive) key limits.
Dynamic tables become more fragmented.
Doesn't support MERGE
tables.
Tables are checked and repaired with isamchk rather than with myisamchk.
Tables are compressed with pack_isam rather than with myisampack.
Cannot be used with the BACKUP
TABLE
or RESTORE
TABLE
backup-related statements.
Cannot be used with the CHECK
TABLE
, REPAIR TABLE
,
OPTIMIZE TABLE
, or
ANALYZE TABLE
table-maintenance
statements.
No support for full-text searching or spatial data types.
No support for multiple character sets per table.
Indexes cannot be assigned to specific key caches.
User Comments
Add your own comment.