InnoDB与MyISAM的区别

InnoDB与MyISAM的区别

存储引擎是数据库的核心,对mysql来说存储引擎是以插件形式运行的。

【不同的功能】

  1. M最大可以存256TB的数据,I最大可以存64TB
  2. M不支持事务,I支持
  3. M支持全文索引,I不支持
  4. M不支持数据索引,I支持
  5. M支持数据压缩,I不支持
  6. M空间使用率低,I使用率高
  7. M不支持外键,I支持

全文索引 以关键字去找行(数据)

数据索引 Mysql常见索引有:主键索引、唯一索引、普通索引、全文索引、组合索引

【存储引擎】

myisam在磁盘上存储成三个文件分别是:

1.frm表的定义数据。

2.MYD表记录数据。

3.MYI存储索引。

缺点不支持事务,优点存储速度快。

innodb的特点:

支持事务(默认隔离级别为可重复度)。

使用锁为行级锁,可以支持并发。

支持外键约束,缺点是降低了表的查询速度,优点增加表之间的耦合度


来自牛客网友的精彩回复

链接:https://www.nowcoder.com/questionTerminal/d5739672e78c498885ba2a540ab53500?source=relative
来源:牛客网
问题:请介绍一下,数据库索引,以及,什么时候用Innodb什么时候用MyISAM。

用户提问 数据库 何时使用MyISAM和InnoDB? 
MyISAM的设计理念是:
你的数据库被查询得远远超过其更新,因此它执行非常快速的读取操作。
如果你的读写比例(插入|更新)小于15%,则最好使用MyISAM。 
InnoDB使用行级锁定,提交,回滚和崩溃恢复功能来保护用户数据。
它支持事务和容错 
MyISAM和InnobDB之间的上述差异是否正确?
如果MYISAM和InnobDB有任何其他限制,请指导。我应该何时使用MyiSAM或Innodb?谢谢! 

关注问题 写回答 2 个回答 热门排序 
用户回答 MyISAM数据: 
MySQL中的MyISAM存储引擎。 
设计和创建更简单,因此对初学者更好。不用担心表格之间的外部关系。
 整体而言,由于结构更简单,服务器资源成本更低,因此总体上比InnoDB更快。 
大部分不再是真的。 
全文索引。- InnoDB现在拥有它 特别适合读密集(选择)表格。 - 大部分不再是真的。 磁盘占用空间比InnoDB少2至3倍。 - 从5.7版本开始,这可能是MyISAM唯一的真正优势。

InnoDB的: MySQL中的InnoDB存储引擎。 
支持交易(为您提供对ACID资产的支持)。
行级锁定。与例如MyISAM相比,拥有更细粒度的锁定机制可为您提供更高的并发性。 
外键约束。允许您让数据库确保数据库状态的完整性以及表之间的关系。 
InnoDB比MyISAM更能抵抗表损坏。 
支持数据和索引的大型缓冲池。
MyISAM密钥缓冲区仅用于索引。 
MyISAM停滞不前; 所有未来的增强将在InnoDB中进行。随着8.0版的推出,这一点非常明确。 

MyISAM限制: 
没有外键和级联删除/更新 没有交易完整性(符合ACID) 没有回滚能力 4,284,867,296行限制(2 ^ 32) - 这是旧的默认值。可配置的限制(对于许多版本)是2 ** 56字节。 每个表最多有64个索引 

nnoDB限制: 
没有全文索引(低于5.6的mysql版本) 无法压缩为快速,只读(5.5.14介绍ROW_FORMAT=COMPRESSED) 您无法修复InnoDB表

MyISAM和InnoDB在索引上的差别及其它区别

  

MySQL

我来吐槽

*

*