MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)改良。
特点:
1:性能极佳,而且提供了大量的特性,包括全文索引、压缩、空间函数等;
2:不支持事务和行级锁;
3:崩溃后无法安全恢复(最大的缺陷);
对比:
1:是否支持行级锁 :
MyISAM 只有表级锁(table-level locking),而InnoDB 支持行级锁(row-level locking)和表级锁,默认为行级锁。
2:是否支持事务和崩溃后的安全恢复:
MyISAM 强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型更快,但是不提供事务支持。
InnoDB 提供事务支持事务的高级数据库功能。
具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。
3:是否支持外键:
MyISAM不支持,而InnoDB支持。
4:是否支持MVCC :
仅 InnoDB 支持。
应对高并发事务, MVCC比单纯的加锁更高效;
MVCC只在 READ COMMITTED 和 REPEATABLE READ 两个隔离级别下工作;
MVCC可以使用 乐观(optimistic)锁 和 悲观(pessimistic)锁来实现;
数据库引擎的选择:
不要轻易相信“MyISAM比InnoDB快”之类的经验之谈,这个结论往往不是绝对的。
在很多我们已知场景中,InnoDB的速度都可以让MyISAM望尘莫及,尤其是用到了聚簇索引,或者需要访问的数据都可以放入内存的应用。
Mysql(3)(MyISAM与InnoDB的区别)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 1.mysql原子性和持久性怎么保证 2.innodb和myisam区别 3.索引分类 4.innodb的底层数据...
- 聚簇索引在InnoDB 和 MyISAM 如上图所示 InnoDB中聚簇索引就是表,索引和数据聚簇在了一起。 My...
- MySQL数据库有多种存储引擎:比如:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(B...
- MyISAM 和InnoDB 讲解InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表...