InnoDB与MyISAM等存储引擎对比

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

InnoDB存储引擎介绍

InnoDB引擎是Mysql的默认的存储引擎,他有不少本身的特性,下面一一列举。java

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

上面这些算是 InnoDB 存储引擎的一些特色了,也是它的优点所在,为何 InnoDB 引擎会使用如此普遍,就是由于它能有很好的性能。sql

MyISAM储存引擎介绍

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

存储引擎之间的对比

这一部分,主要简要的介绍一下各个存储引擎之间的差异,及主要的做用及特色。数据库

特性对比

特性
MyISAM InnoDB BDB
Memory Archive NDB
存储限制

64TB




事务

支持
支持


锁级别
表锁
行锁
page


MVCC(并发控制)

支持


支持
支持
全文索引
支持





集群索引

支持




数据缓存和索引缓存
支持

支持

支持
数据压缩
支持



支持

批量插入速度




很高

集群数据库支持





支持
外键支持

支持




适用场景 不须要事务的操做;插入、更新少,读取频繁;频繁的统计计算。
须要事务的操做;更新数据须要使用行级锁;大数据量读写;大型互联网应用。
相似 InnoDB
数据量不大,须要被频繁的访问,并且数据丢失不会对业务产生比较严重的影响。
存储引擎基本上用于数据归档,做为日志表 集群

存储引擎特性介绍

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

文章有不当之处,欢迎指正,若是喜欢微信阅读,你也能够关注个人微信公众号好好学java,获取优质学习资源。缓存

相关文章
相关标签/搜索