InnoDB vs MyISAM
InnoDB | MyISAM |
---|---|
Default Engine in mysql 5.5.5 and above | Default MyISAM Engine in mysql versions below 5.5.5 |
Row-level locking - less issues with backups | Full Table-level locking - lots of backup issues |
Crash Recovery | NO crash recovery |
No full text search in versions 5.6 and greater | Full text search in all versions |
.idb, .FRM, | .MYD, .FRM |
InnoDB
InnoDB is a highly reliable, high performance engine.
ACID compliant (Atomicity, Consistency, Isolation, Durability) –> Transactions featuring commits, rollbacks, crash recovery. More information on ACID (https://dev.mysql.com/doc/refman/5.7/en/mysql-acid.html)
Supports FOREIGN Key Constraints (https://dev.mysql.com/doc/refman/5.6/en/innodb-foreign-key-constraints.html)
MyISAM
MyISAM offers NO data integrity. It does NOT play well with unclean shutdowns and cancelled operations which can in turn cause data corruption. To attempt to resolve you would need to run a full repair or rebuild on indexes and tables.
If you are importing a database and it crashes halfway through, you will have half of the data imported and not the other half. Its NOT an all-or-nothing situation where as InnoDB is.
Sources:
https://dev.mysql.com/doc/refman/5.7/en/innodb-introduction.html