What are MySQL storage engines

· Category: SQL & Databases

Short answer

A storage engine is the underlying software component that MySQL uses to create, read, and update data. InnoDB is the default and supports transactions and foreign keys.

Key differences

  • InnoDB: ACID-compliant, supports transactions, row-level locking, foreign keys, and crash recovery.
  • MyISAM: Table-level locking, no transactions, generally faster for read-heavy workloads, but lacks crash safety.
  • Memory: Stores data in RAM for extremely fast access, but data is lost on restart.
  • CSV: Stores data in CSV files for easy external processing.

When to use each

  • Use InnoDB for almost all general-purpose applications.
  • Use MyISAM only for legacy systems or specialized read-only archives.
  • Use Memory for temporary session caches that can be rebuilt.r