By default, we use the InnoDB database engine, largely for performance reasons. Most WordPress users never think about MySQL database engines, and for good reason – WordPress works great with either engine in most cases.
Database engines are a technical detail to which we pay attention to optimize performance. For MySQL versions prior to 5.5, the default database engine was MyISAM. MyISAM was a time-proven way of accessing SQL data. As of MySQL version 5.5, InnoDB became the default engine. While both engines have their strengths and weaknesses, here are what we see as the important differences for WordPress users:
- InnoDB does row-level locking for updates, while MyISAM locks the entire table;
- InnoDB supports transactions, foreign keys, and relationship constraints while MyISAM does not;
- InnoDB has better crash recovery, especially for large databases;
The row-level locking feature of InnoDB means that a smaller portion of a database (a single row as opposed to an entire table) is locked while an update is performed. That provides better response for more users in a busy network. InnoDB’s crash recovery capabilities are important to us so that we can restore data quickly in the event of a system failure.
Posted in: Technical