MySQL Storage Engine Architecture
Indicates that an engine is available
mysql> SHOW ENGINES\G
Table 13.1. Storage Engine Features
Feature MyISAM Memory InnoDB Archive NDB
Storage limits 256TB RAM 64TB None 384EB
Transactions No No Yes No Yes
Locking granularity Table Table Row Row Row
MVCC No No Yes No No
Geospatial data type support Yes No Yes Yes Yes
Geospatial indexing support Yes No No No No
B-tree indexes Yes Yes Yes No Yes
Hash indexes No Yes No No Yes
Full-text search indexes Yes No No No No
Clustered indexes No No Yes No No
Data caches No N/A Yes No Yes
Index caches Yes N/A Yes No Yes
Compressed data Yes[a] No Yes[b] Yes No
Encrypted data[c] Yes Yes Yes Yes Yes
Cluster database support No No No No Yes
Replication support[d] Yes Yes Yes Yes Yes
Foreign key support No No Yes No No
Backup / point-in-time recovery[e] Yes Yes Yes Yes Yes
Query cache support Yes Yes Yes Yes Yes
Update statistics for data dictionary Yes Yes Yes Yes Yes
[a] Compressed MyISAM tables are supported only when using the compressed row format.
Tables using the compressed row format with MyISAM are read only.
[b] Compressed InnoDB tables require the InnoDB Barracuda file format.
[c] Implemented in the server (via encryption functions),rather than in the storage engine.
[d] Implemented in the server, rather than in the storage product
The main difference between MyISAM and INNODB are :
- MyISAM does not support transactions by tables while InnoDB supports.
- There are no possibility of row-level locking, relational integrity in MyISAM but with InnoDB this is possible. MyISAM has table-level locking.
- InnoDB does not support FULLTEXT index while MyISAM supports.
- Performance speed of MyISAM table is much higher as compared with tables in InnoDB.
- InnoDB is better option while you are dealing with larger database because it supports transactions, volume while MyISAM is suitable for small project.
- As InnoDB supports row-level locking which means inserting and updating is much faster as compared with MyISAM.
- InnoDB supports ACID (Atomicity, Consistency, Isolation and Durability) property while MyISAM does not support.
- In InnoDB table,AUTO_INCREMENT field is a part of index.
- Once table in InnoDB is deleted then it can not re-establish.
- InnoDB does not save data as table level so while implementation of select count(*) from table will again scan the whole table to calculate the number of rows while MyISAM save data as table level so you can easily read out the saved row number.
- MyISAM does not support FOREIGN-KEY referential-integrity constraints while InnoDB supports.

Comments
Post a Comment