MyIsam与InnoDB的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyIsam与InnoDB的区别相关的知识,希望对你有一定的参考价值。

mysql-5.5.5开始,InnoDB作为默认存储引擎,Mysql默认为InnoDB。

MyIsam:不支持事务处理(即原子操作);不支持外键;锁表。

 

InnoDB:支持事务处理;支持外键;断电等硬件故障可以恢复数据。琐行。

 

mysiam表会锁表,而innodb表会锁行。通俗点说,就是你执行了一个update语句,那么mysiam表会将整个表都锁住,其他的insert和delete、update都会被拒之门外,等到这个update语句执行完成后才会被依次执行。

而锁行,就是说,你执行update语句是,只会将这一条记录进行锁定,只有针对这条记录的其他写入、更新操作会被阻塞并等待这条update语句执行完毕后再执行,针对其他记录的写入操作不会有影响。


因此,当你的数据库有大量的写入、更新操作而查询比较少或者数据完整性要求比较高的时候就选择innodb表。当你的数据库主要以查询为主,相比较而言更新和写入比较少,并且业务方面数据完整性要求不那么严格,就选择mysiam表。因为mysiam表的查询操作效率和速度都比innodb要快。

转自:http://www.dedecms.com/knowledge/data-base/mysql/2012/0819/7217.html

以上是关于MyIsam与InnoDB的区别的主要内容,如果未能解决你的问题,请参考以下文章

MyIsam与InnoDB的区别

锁模块之MyISAM与InnoDB关于锁方面的区别

INNODB与MyISAM两种表存储引擎区别

Innodb与Myisam引擎的区别与应用场景

MyISAM与InnoDB两者之间区别与选择

InnoDB与Myisam的区别