Most commonly used storage engine in MySQL are MyISAM and InnoDB. The default storage engine chosen by MySQL database is MyISAM. There are some advantages and disadvantages of these storage engine according to application needs.
Main differences between InnoDB and MyISAM
- MyISAM does not support transactions by tables while InnoDB supports.
- InnoDB does not support FULLTEXT index while MyISAM supports.
- Performance speed of MyISAM table is much higher as compared with tables in InnoDB.
- 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.
- MyISAM does not support FOREIGN-KEY referential-integrity constraints while InnoDB supports.
- In InnoDB table, AUTO_INCREMENT field is a part of index.
- 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.
- InnoDB is better option while you are dealing with larger database because it supports transactions, volume while MyISAM is suitable for small project.
You can choose storage engine as per the application requirement because both InnoDB and MyISAM have some advantages and disadvantages.