Comparing the MyISAM and InnoDB database engines for mySQL

Databases are almost always used when building applications, whether they are web applications or native applications. Choosing an appropriate database engine is a critical step in the design and planning stage and should not be overlooked. A database engine (sometimes called a storage engine) is the underlying software in a database management system that takes care of creating, reading, updating, and deleting data. This article will be comparing two engines that are commonly used with MySQL, MyISAM and InnoDB. For those unfamiliar with MySQL, it is an open source relational database management system (RDBMS) developed by Oracle. As of June 2013 it is the most widely used open source RDBMS.

Let’s look at MyISAM first and contrast it to InnoDB since it is the default engine for MySQL 5.0 and offers several benefits. When setup correctly and conditions are ideal MyISAM is extremely fast. It also offers full-text indexes which are great for applications that need quick, accurate search functionality. MyISAM tables are also very simple thus being easily learned and understood. You may be thinking to yourself “Why would I want to use anything other than MyISAM? This sounds like the perfect engine!” However, its speed and simplicity comes with a few major drawbacks...