MySQL Storage Engines

MySQL Best Practices

When you create a database you have to choose the storage engine for storing data into the database. MySQL supports various types of storage engines i.e. MyISAM, InnoDB, MERGE, MEMORY (HEAP), ARCHIVE, CSV, FEDERATED.

Each storage engines has different performance of the database and has advantages or disadvantages.

Here is the list of MySQL Storage Engines:

MyISAM:
When you create a table and if you do not specify the storage engine MyISAM was the default storage engine. But from version 5.5, MySQL uses InnoDB as the default storage engine.

This storage engine is optimized for compression and speed and also portable between operating systems and platforms.

MyISAM table can be up to 256TB in size and not transaction-safe.

InnoDB:
From version 5.5, MySQL uses InnoDB as the default storage engine. Same as MyISAM, InnoDB tables are portable between different platforms and operating systems.

InnoDB table can be up to 64TB in size and fully support ACID property, transactions, foreign keys, commit, rollback, roll-and forward operations.

CSV:
This type of engine use comma-separated values (CSV) file format. This does not support NULL data type.

Archive:
This type of engine only allow INSERT and SELECT statements and do not support indexes.
For a large number of records you can use this engine and for archiving purpose you can compress format to save disk space.

Memory:
Formerly known as HEAP, this engine is faster than MyISAM tables. It is stored in memory using hash index.

MERGE:
During joining multiple tables this storage engine is useful for speed up performance. SELECT, DELETE, UPDATE and INSERT operations are used in MERGE tables.

FEDERATED:
This type of storage engine allows to manage data from a remote MySQL server. This does not use cluster or replication technology.

Leave a Reply

Your email address will not be published. Required fields are marked *