MySQL 524 's storage engines are pluggable: each table names its engine in ENGINE= (Table Options), and one query may join tables that use different engines. SHOW ENGINES lists what the server offers; the same data in information_schema.ENGINES lets you pick columns and rows:
SELECT engine, support, transactions, xa, savepoints
FROM information_schema.ENGINES WHERE support <> 'NO' ORDER BY engine;+--------------------+---------+--------------+------+------------+ | engine | support | transactions | xa | savepoints | +--------------------+---------+--------------+------+------------+ | ARCHIVE | YES | NO | NO | NO | | BLACKHOLE | YES | NO | NO | NO | | CSV | YES | NO | NO | NO | | InnoDB | DEFAULT | YES | YES | YES | | MEMORY | YES | NO | NO | NO | | MRG_MYISAM | YES | NO | NO | NO | | MyISAM | YES | NO | NO | NO | | PERFORMANCE_SCHEMA | YES | NO | NO | NO | +--------------------+---------+--------------+------+------------+ 8 rows in set (0.000 sec)
Only InnoDB supports transactions, XA and savepoints; FEDERATED (remote tables) and NDB (MySQL Cluster) are present but disabled. The others have narrow uses:
| Feature | InnoDB | MyISAM | MEMORY | ARCHIVE |
|---|---|---|---|---|
| Transactions and foreign keys | Yes | No | No | No |
| Locking | Row | Table | Table | Row |
| Crash recovery | Automatic, from redo log | None; REPAIR TABLE | Rows lost on restart | None |
| Indexes | B-tree, full-text, spatial | B-tree, full-text, spatial | Hash, B-tree | AUTO_INCREMENT key only |
| Good for | Almost everything | Legacy read-mostly data | Small scratch lookups | Write-once logs |
MyISAM ignores transactions: in a test run, a MyISAM INSERT survived ROLLBACK, which warned "Some non-transactional changed tables couldn't be rolled back" (1196). MEMORY tables are capped by max_heap_table_size (16 MB by default). ARCHIVE compresses rows and refuses UPDATE and DELETE, CSV stores a comma-separated file, and BLACKHOLE discards rows but still writes the binary log. ALTER TABLE t ENGINE = InnoDB converts an old table by rebuilding it.