前言:在使用mysql的时候,偶然发现因为mysql存储引擎的不同,导致一些功能根本无法使用,好奇之下,通过查阅资料了解到myisam和innodb两者分别在mysql中扮演的不同角色,以及二者的区别:
首先介绍下两种存储引擎:
myisam:myisam是mysql的默认数据库引擎(5.5版以前),有更早期的isam(有索引的顺序访问方法,mysql5.1不支持)所改良。支持fulltext(全文类型)的索引,对于读多写少的数据库而言,性能极佳。
因为myisam不支持事务回滚,因此这几年mysql引入一个新的引擎 innodb,以强化参考完整性与并发违规处理机制,并逐渐取代了myisam
innodb:innodb是mysql后来研发,并且目前(mysql5.5版本后)使用较多的存储引擎。
二者区别:
innodb |
myisam |
|
事务 |
支持 |
不支持 |
锁读取 |
不加锁读取,支持行锁 |
|
外键 |
支持 |
不支持 |