The various storage engines provided with MySQL are designed with different use-cases in mind. To use the pluggable storage architecture effectively, it is good to have an idea of the benefits and drawbacks of the various storage engines. The following table provides an overview of some storage engines provided with MySQL:
| Feature | MyISAM | Memory | InnoDB | Archive | NDB |
| Storage limits | 256TB | Yes | 64TB | No | 384EB[4] |
| Transactions | No | No | Yes | No | Yes |
| Locking granularity | Table | Table | Row | Row | Row |
| MVCC (snapshot read) | No | No | Yes | Yes | No |
| Geospatial support | Yes | No | Yes[1] | Yes[1] | Yes[1] |
| B-tree indexes | Yes | Yes | Yes | No | Yes |
| Hash indexes | No | Yes | No | No | Yes |
| Full-text search indexes | Yes | No | No | No | No |
| Clustered indexes | No | No | Yes | No | No |
| Data caches | No | N/A | Yes | No | Yes |
| Index caches | Yes | N/A | Yes | No | Yes |
| Compressed data | Yes | No | No | Yes | No |
| Encrypted data[2] | Yes | Yes | Yes | Yes | Yes |
| Cluster database support | No | No | No | No | Yes |
| Replication support[3] | Yes | Yes | Yes | Yes | Yes |
| Foreign key support | No | No | Yes | No | No |
| Backup / point-in-time recovery[3] | Yes | Yes | Yes | Yes | Yes |
| Query cache support | Yes | Yes | Yes | Yes | Yes |
| Update statistics for data dictionary | Yes | Yes | Yes | Yes | Yes |
[1] Storage engine supports spatial data types but no indexing of such data
[2] Implemented in the server (via encryption functions), rather than in the storage engine
[3] Implemented in the server, rather than in the storage engine
[4] EB = exabyte (1024 * 1024 terabyte)

User Comments
Add your own comment.