Following tables (Storage Engine) we can create :
1. MyISAM (Each MyISAM table is stored on disk in three files. The files have names that begin with the table name and have an extension to indicate the file type. An .frm file stores the table format. The data file has an .MYD (MYData) extension. The index file has an .MYI (MYIndex) extension. )
2. InnoDB (The default storage engine IN MYSQL) (InnoDB is a transaction-safe (ACID compliant) storage engine for MySQL that has commit, rollback, and crash-recovery capabilities to protect user data.)
4. Heap (MEMORY) (The MEMORY storage engine creates tables with contents that are stored in memory. Formerly, these were known as HEAP tables. MEMORY is the preferred term, although HEAP remains supported for backward compatibility. )
5. BDB (BerkeleyDB) (Sleepycat Software has provided MySQL with the Berkeley DB transactional storage engine. This storage engine typically is called BDB for short. BDB tables may have a greater chance of surviving crashes and are also capable of COMMIT and ROLLBACK operations on transactions)
7. FEDERATED (It is a storage engine that accesses data in tables of remote databases rather than in local tables. )
8. ARCHIVE (The ARCHIVE storage engine is used for storing large amounts of data without indexes in a very small footprint. )
9. CSV (The CSV storage engine stores data in text files using comma-separated values format.)
10. BLACKHOLE (The BLACKHOLE storage engine acts as a “black hole” that accepts data but throws it away and does not store it. Retrievals always return an empty result)
|InnoDB implements row-level locking.
||MyISAM implements table-level locking.
|Automatic Crash Recovery.
||No Crash Recovery
|InnoDB doesn’t have FULLTEXT search indexes.
||MyISAM have FULLTEXT search indexes.
|InnoDB also implements transactions, foreign keys and relationship constraints.
||MyISAM does not support transactions, foreign keys and relationship constraints.
|InnoDB stores both data and indexes in one file.
||MyISAM stores indexes in one file and data in another.
|InnoDB uses a buffer pool to cache both data and indexes.
||MyISAM uses key buffers for caching indexes and leaves the data caching management to the operating system.
In InnoDB the COUNT(*)s (when WHERE, GROUP BY, or JOIN is not used) execute slower than in MyISAM because the row count is not stored internally.
Overall I would recommend InnoDB for most purposes and MyISAM for specialized uses only. InnoDB is now the default engine in new MySQL versions.