InnoDB与MyISAM等存储引擎对比

52次阅读

共计 1037 个字符,预计需要花费 3 分钟才能阅读完成。

文章原文:blog.ouyangsihai.cn >> InnoDB 与 MyISAM 等存储引擎对比

InnoDB 存储引擎介绍

InnoDB 引擎是 Mysql 的默认的存储引擎,他有很多自己的特性,下面一一列举。

  • 支持事务,InnoDB 存储引擎主要就是为了在线事务处理(OLTP)的应用而设计的。
  • 行锁设计,支持外键,非锁定读。
  • 支持多版本的并发控制(MVCC)来获得高并发性。
  • 提供了插入缓冲、二次写、自适应哈希索引、预读等高性能和高可用的功能。

上面这些算是 InnoDB 存储引擎的一些特点了,也是它的优势所在,为什么 InnoDB 引擎会使用如此广泛,就是因为它能有很好的性能。

MyISAM 储存引擎介绍

  • 不支持事务,它的设计目标是面向在线分析的应用(OLAP)。
  • 支持全文索引。
  • 表锁设计
  • 它的缓冲池只缓冲 索引文件 不缓冲数据文件,所以 MyISAM 存储引擎表由 MYDMYI 组成,前者存储数据文件,后者存储索引文件。

存储引擎之间的对比

这一部分,主要简要的介绍一下各个存储引擎之间的差别,及主要的作用及特点。

特性对比

特性MyISAMInnoDBBDBMemoryArchiveNDB
存储限制64TB
事务 支持支持
锁级别表锁行锁page
MVCC(并发控制) 支持 支持支持
全文索引支持
集群索引 支持
数据缓存和索引缓存 支持 支持 支持
数据压缩支持 支持
批量插入速度很高
集群数据库支持 支持
外键支持 支持
适用场景不需要事务的操作;插入、更新少,读取频繁;频繁的统计计算。需要事务的操作;更新数据需要使用行级锁;大数据量读写;大型互联网应用。类似 InnoDB数据量不大,需要被频繁的访问,而且数据丢失不会对业务产生比较严重的影响。存储引擎基本上用于数据归档,作为日志表集群

存储引擎特性介绍

存储引擎主要特点
BDB可替代 InnoDB 的事务引擎,支持 COMMIT、ROLLBACK 和其他事务特性
Memory数据存储在内存中,重启或崩溃,数据消失,使用哈希索引
Archive只支持 Insert 和 Select 操作,支持索引,非常适合存储归档数据,目标:高速插入和压缩功能
NDB集群存储引擎,数据全部放在内存中,高可用、高性能的集群系统
Federated不存放数据,只是指向一台远程 MySQL 数据库服务器上的表
Maria新开发引擎,用于取代 MyISAM 存储引擎。支持事务和非事务、缓存、索引文件、行锁、MVCC 功能

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的 微信公众号 好好学 java,获取优质学习资源。

正文完
 0