Search code examples
mysqlinnodbmyisamstorage-engines

MySQL Table Engines


MyISAM

  • Default engine
  • No Transaction support
  • Good for Heavy data reading
  • Bad for write calls: table level locking

InnoDB

  • Transaction safe
  • Good for Heavy write calls: row level locking
  • Supports foreign keys referential integrity constraints

Is InnoDB bad for data reading??? What other storage engines should i be familar with?


Solution

  • No, InnoDB is not "bad" for data reading; in fact, I tend to use it as a default engine for all of my tables. Transactions and true relational features outweigh any minor read-performance benefit that you might get from MyISAM (in my opinion).

    Edited to add: MyISAM is faster than InnoDB because it is simpler. But, unless you're doing some really high-volume stuff or are using an ancient machine as your database server, you're not likely to see a difference in daily operation.

    Other storage engines to be familiar with are Memory for really fast, non-persistent data storage and CSV which I will use on occasion as part of data export processes.

    This page has a comprehensive overview of MySQL Storage Engines.