MySQL存储引擎

MySQL存储引擎

  • InnoDB存储引擎
  • MyISAM存储引擎
  • Archive存储引擎

Archive只支持insert和select操作,支持行级锁和专用的缓冲区,可以实现高并发的插入。

  • CSV存储引擎

可以将普通的csv文件作为MySQL的表处理,但是不支持索引

  • Memory引擎

支持Hash索引,因此查找操作非常快。Memory表是表级锁,并发写入性能低,不支持blob和text类型的列,且每行的长度是固定的。

应用场景:

  • 用于查找(lookup)或映射(mapping)
  • 用于查找周期性聚合数据
  • 用于保存数据分析产生的中间数据
  • Blackhole存储引擎

没有实现任何存储机制,会丢弃所有插入的数据, 不做任何保存,但是服务器会记录Blackhole表的日志, 用于复制数据到备库

  • Merge引擎是有MyISAM引擎的变种, 由多个MyISAM表合并而来的虚拟表
  • NDB集群引擎
  • Federated引擎

Federated引擎是访问其他MySQL服务器的一个代理, 会常见一个到远程MySQL服务器的客户端连接,并将查询传输到远程服务器执行,然后提取或者发送数据到需要的数据。

MyISAM和InnoDB存储引擎的区别

  • 是否支持行级锁, MyISAM只支持表级锁, InnoDB支持行级锁和表级锁
  • 是否支持事务和崩溃后安全恢复,MyISAM强调性能,每次查询都是原子性, 不支持事务。InnoDB支持事务、外键等高级数据库功能,具有事务,回滚和崩溃修复的事务性安全型表
  • 是否支持外键,MyISAM不支持,而InnoDB支持。
  • 是否支持MVCC,仅 InnoDB 支持。应对高并发事务, MVCC比单纯的加锁更高效;MVCC只在 READ COMMITTED 和 REPEATABLE READ 两个隔离级别下工作;MVCC可以使用 乐观(optimistic)锁 和 悲观(pessimistic)锁来实现;各数据库中MVCC实现并不统一
posted @ 2020-05-24 20:42  phper-liunian  阅读(159)  评论(0编辑  收藏  举报