MySQL 两种存储引擎:MyISAM与InnoDB对比及理解

Posted Data+Science+Insight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 两种存储引擎:MyISAM与InnoDB对比及理解相关的知识,希望对你有一定的参考价值。

mysql 两种存储引擎:MyISAM与InnoDB对比及理解

目前MySQL默认的存储引擎是InnoDB

现在大多数时候我们使用的都是InnoDB存储引擎,但是在某些情况下使用MyISAM更好,比如:MyISAM更适合读密集的表,而InnoDB更适合写密集的的表。 在数据库做主从分离的情况下,经常选择MyISAM作为主库的存储引擎

二者的常见对比

  • count运算上的区别: 因为MyISAM缓存有表meta-data(行数等),因此在做COUNT(*)时对于一个结构很好的查询是不需要消耗多少资源的。而对于InnoDB来说,则没有这种缓存。
  • 是否支持事务和崩溃后的安全恢复: MyISAM 强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型更快,但是不提供事务支持。但是InnoDB 提供事务支持事务,外部键等高级数据库功能。 具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。
  • 是否支持外键: MyISAM不支持,而InnoDB支持。

1、 存储结构

MyISAM:每个MyISAM在磁盘上存储成三个文件。分别为:表定义文件、数据文件、索引文件

以上是关于MySQL 两种存储引擎:MyISAM与InnoDB对比及理解的主要内容,如果未能解决你的问题,请参考以下文章

MySQL存储引擎

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

怎么理解 MySQL 常见的两种存储引擎:MyISAM与InnoDB?

MySQL QA

MySQL两种存储引擎: MyISAM和InnoDB总结

MySQL 存储引擎