InnoDB与MyISAM的区别
存储引擎是数据库的核心,对mysql来说存储引擎是以插件形式运行的。
【不同的功能】
- M最大可以存256TB的数据,I最大可以存64TB
- M不支持事务,I支持
- M支持全文索引,I不支持
- M不支持数据索引,I支持
- M支持数据压缩,I不支持
- M空间使用率低,I使用率高
- 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表
评论