MySQL学习-存储引擎(三)

57 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第16天,点击查看活动详情

前言

上篇我们学习了MySQL中的存储引擎。有兴趣的小伙伴可以阅读(MySQL学习-存储引擎(二))。
下面我们继续学习MySQL中的存储引擎。

存储引擎

Federated引擎

Federated引擎是访问其他MySQL服务器的一个代理,尽管该引擎看起来提供了一种很好的跨服务器的灵活性,但也经常带来问题,因此默认是禁用的。

Merge引擎

Merge引擎管理多个MyISAM表构成的表集合。

NDB引擎

NDB引擎是MySQL集群专用存储引擎。也叫做NDB Cluster存储引擎,主要用于MySQL Cluster分布式集群环境,类似于Oracle的RAC集群。

引擎对比

特点MyISAMInnoDBMEMORYMergeNDB
存储限制64TB没有
事务支持
锁机制表锁,即使操作一条记录也不会锁住整个表,不适合高并发的操作行锁,操作时只锁某一行,不对其他行有影响,适合高并发的操作表锁表锁行锁
B树索引支持支持支持支持支持
哈希索引支持支持
全文索引支持
集群索引支持
数据缓存支持支持支持
索引缓存只索引缓存,不缓存真实数据不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响支持支持支持
数据可压缩支持
空间使用N/A
内存使用中等
批量插入的速度
支持外键支持

MyISAM和InnoDB的区别

MySQL5.5之前的默认存储引擎是MyISAM,5.5之后改为了InnoDB。

对比项MyISAMInnoDB
外键不支持支持
事务不支持支持
行表锁表锁,即使操作一条记录也不会锁住整个表,不适合高并发的操作行锁,操作时只锁某一行,不对其他行有影响,适合高并发的操作
缓存只索引缓存,不缓存真实数据不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响
自带系统表使用YN
关注点性能:节省资源、消耗少、简单业务事务:并发写、事务、更大资源
默认安装YY
默认使用NY

今天先学习到这里,明天继续。