MyIsam与InnoDB的区别

  • 时间:
  • 出处:跟我学网络
  • 作者:
  • 浏览:390

标签:

从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