MySQL各存储引擎区别与特点

1586050576424.jpg

NDB存储引擎
介绍
2003年,MYSQL AB公司从Sony Ericsson 公司收购了NDB集群引擎
结构
类似于Oracle的RAC集群不过与Oracle RAC share everything 架构不同的是
其结构是share nothing 的集群架构,提供更高的可用性。
特点
数据全部放在内存(从MYSQL5.1版本开始,可以将非索引数据放在磁盘上)
主键查找的速度极快
通过添加NDB数据存储节点可以线性地提高数据性能,是高可用、高性能的集群系统
备注说明
关于NDB存储引擎,有一个问题值得注意,那就是NDB存储引擎的连接操作(JOIN)是在MySQL数据库层完成的,而不是在存储引擎层完成的。
这意味着,复杂的连接操作需要巨大的网络开销,因此查询速度很慢。如果解决了这个问题,NDB存储引擎的市场应该是非常巨大的。

Maria存储引擎
介绍
Maria存储引擎是新开发的引擎,设计目标主要是用来取代原有的MyISAM存储引擎,从而成为MySQL的默认存储引擎。Maria 存储引擎的开发者是MySQL的创始人之一的MichaelWidenius。因此,它可以看做是MyISAM的后续版本。
结构
特点
支持缓存数据和索引文件,
应用了行锁设计
子主提供了MVCC功能
支持事务和非事务安全的选项
以及更好的BLOB字符类型的处理性能
备注

Federated存储引擎
介绍
Federated存储引擎
结构
指向远程MYSQL数据库服务器上的表
特点
非常类似于SQL server 的链接服务器和Oracle的透明网关
备注
只支持MySQL数据表,不支持异构数据表

Memory存储引擎
介绍
Memory存储引擎(之前称HEAP存储引擎)
结构
将表中的数据存放在内存
特点
如果数据库重启或发生崩溃,表中数据都将消失
非常适合用于存储临时数据的临时表,以及数据仓库中的纬度表
默认使用哈希索引
存储引擎速度非常快
只支持表锁,并发性能较差
不支持TEXT和BLOB列类型
存储变长字段时按照定长字段方式进行,浪费内存
备注说明
MySQL数据库使用Memory存储引擎作为临时表来存放查询的中间结果集(intermediate result)。 如果中间结果集大于Memory存储引擎表的容量设置,又或者中间结果含有TEXT或BLOB列类型字段,则MySQL数据库会把其转换到MyISAM存储引擎表而存放到磁盘中。之前提到MyISAM不缓存数据文件,因此这时产生的临时表的性能对于查询会有损失。

Archive存储引擎
介绍
Archive存储引擎
结构
使用zlib算法将数据行进行压缩后存储
压缩比一般可达1:10
特点
非常适合存储归档数据,如日志信息
只支持INSERT和SECECT操作
从MYSQL5.1开始支持索引
备注
Archive存储引擎使用行锁实现高并发的插入操作,但是其自身并不是事务安全存储引擎,其设计目标是提供高速的插入和压缩功能。

MyISAM存储引擎
介绍
主要面向一些OLAP数据库应用,在MySQL5.58版本之前MyISAM存储引擎是默认的存储引擎(除window版本外)
结构
引擎表由MYD和MYI组成
MYD用来存储数据文件
MYI用来存储索引文件
特点
不支持事务
表锁设计
支持全文索引
缓存池只缓存索引文件,而不缓存数据文件
备注说明
可以通过使用myisampack工具来进- - 步压缩数据文件,因为myisampack工具使用赫夫曼(Huffman) 编码静态算法来压缩数据,因此使用myisampack工具压缩后的表是只读的,当然用户也可以通过myisampack来解压数据文件。
在MySQL 5.0版本之前,MyISAM默认支持的表大小为4GB,如果需要支持大于4GB的MyISAM表时,则需要制定MAX_ROWS和AVG__ROW_LENGTH属性。从MySQL 5.0版本开始,MyISAM默认支持256TB的单表数据,这足够满足- -般应用需求。

InnoDB存储引擎
介绍
从MySQL数据库5.5.8版本开始,InnoDB 存储引擎是默认的存储引擎。
结构
将数据放在一-个逻辑的表空间中
这个表空间就像黑盒–样由InnoDB存储引擎自身进行管理
从MySQL4.1 (包括4.1)版本开始,它可以将每个InnoDB存储引擎的表单独存放到一个独立的ibd文件中
此外,InnoDB 存储引擎支持用裸设备(row disk)用来建立其表空间。
特点
支持事务,其设计目标主要面向在线事务处理(OLTP)的应用
应用了行锁设计
支持外键
并支持类似于Oracle的非锁定读,即默认读取操作不会产生锁
以及更好的BLOB字符类型的处理性能
通过使用多版本并发控制(MVCC)来获得高并发性,并且实现了SQL标准的4种隔离级别,默认为REPEATABLE级别
使用一种被称为next-keylocking的策略来避免幻读( phantom)现象的产生
InnoDB 储存引擎还提;供了插人缓冲(insert buffer)、二次写(double write)、自适应哈希索引(adaptive hashindex)、预读(read ahead)等高性能和高可用的功能。
备注
对于表中数据的存储,InnoDB 存储引擎采用了聚集(clustered) 的方式,因此每张表的存储都是按主键的顺序进行存放。如果没有显式地在表定义时指定主键,InnoDB 存储引擎会为每-行生成-一个 6字节的ROWID,并以此作为主键。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,875评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,569评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,475评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,459评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,537评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,563评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,580评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,326评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,773评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,086评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,252评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,921评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,566评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,190评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,435评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,129评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,125评论 2 352

推荐阅读更多精彩内容