MySQL5.5及更高版本,默认存储引擎使用InnoDB,它提供了事务安全表(兼容ACID),支持外键引用的完整性约束。支持事务的提交,回滚和紧急数据恢复。它支持行级锁定。可以将数据存储在集群索引中,从而减少了基于主键查询的I/O次数。
管理非事务性表,提高了存储和检索的效率,支持全文搜索。
1. InnoDB 支持事务,MyISAM 不支持事务。
这是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一;
2. InnoDB 支持外键,而 MyISAM 不支持。
对一个包含外键的 InnoDB 表转为 MYISAM 会失败;
3. InnoDB 是聚集索引,MyISAM 是非聚集索引。
然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而 MyISAM 是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的
4. InnoDB 不保存表的具体行数,执行 select count(*) from table 时需要全表扫描。而MyISAM 用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快;
5. InnoDB 最小的锁粒度是行锁,MyISAM 最小的锁粒度是表锁。
一个更新语句会锁住整张表,导致其他查询和更新都会被阻塞,因此并发访问受限。这也是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一;
来源:知乎
适用于存储的内容较小,需要频繁查询;
将数据存储在RAM中,数据的存储、查询更快;
将多个类似的MyISAM表分组为一个表,可以处理非事务性表。
开发人员学习如何编程存储过程,不能存储和查询数据。
用于存储海量数据,但不支持索引。
以 ,(英文逗号)来分割数据并存储。
只接收数据,不存储数据。
就像一个无底洞,放进去东西,出不来。
将数据存储到远程数据库中;
mysql数据库中分为行和列;
数据在计算机上存储是以页为单位存储的。