NDB和InnoDB存储引擎比较
文章目录
- 说明
- NDB和InnoDB的不同点
- NDB和InnoDB的性能、负载比较
- NDB和InnoDB特性总结
说明
首先MySQL提供了众多的存储引擎供用户使用,但是支持事务的存储引擎并不多:NDB和InnoDB两个。但是NDB只支持在NDB集群中使用,并不支持在其他场景下使用。下面我们主要讨论它们之间不同的地方,各自的优缺点方便用户根据自己的实际情况进行选项。
注:在NDB集群中,只支持NDB存储引擎的表,其他存储引擎的表将不会被集群化。
NDB和InnoDB的不同点
NDB需要通过一个分布式集群来使用,采用的不共享任何数据、组件的集群,无单点故障。
- 以MySQL8.0,NDB8.0版本为例:
而对于MySQL5.7,NDB7.5/7.6版本没有区别,除了数据库版本之外。
特性 |
InnoDB (MySQL 8.0)
|
NDB 8.0
|
---|---|---|
MySQL版本 | 8.0 | 8.0 |
InnoDB版本 | 8.0.15 | 8.0.15 |
NDB集群版本 | N/A | 8.0.14/8.0.14 |
存储限制 | 64TB | 128TB |
外键 | Yes | Yes |
事务 | 所有类型 | READ COMMITTED |
MVCC | Yes | No |
数据压缩 | Yes | No (NDB的检查点和备份文件可以压缩) |
大行数据(> 14K) | 支持 VARBINARY,VARCHAR,BLOB,TEXT | 只支持 BLOB,TEXT (如果存储非常大的数据,会降低NDB的性能) |
支持复制 | 异步和半同步复制; MySQL组复制 | 在NDB集群中自动同步复制;在NDB集群之间使用MySQL复制进行异步复制(不支持半同步复制) |
分布式读 | Yes (MySQL复制) | Yes |
分布式写 | 需要应用程序级别进行操作 | Yes |
高可用 | 内置,InnoDB集群 | Yes (99.999%的稳定性) |
节点故障恢复、切换 | MySQL组复制 | 自动化 |
节点故障恢复时间 | 30秒或更长 | 通常情况小于1秒 |
实时性能 | No | Yes |
内存表 | No | Yes (可以同时存储在磁盘、内存上) |
NoSQL访问存储引擎 | Yes | Yes (多种APIs, 包括:Memcached, Node.js/JavaScript, Java, JPA, C++和HTTP/REST) |
并发和并行写入 | Yes | 可支持最多48并行写操作, 优化并发写入操作 |
冲突检测和解决(多主) | Yes (MySQL Group Replication) | Yes |
Hash索引 | No | Yes |
在线添加节点 | 组复制中的读、写节点 | Yes (所有类型的节点) |
在线升级 | Yes (复制) | Yes |
在线修改 | Yes | Yes |
NDB和InnoDB的性能、负载比较
NDB集群具有一系列独特的属性,这些属性使其非常适合为需要高可用性、快速故障转移、高吞吐量和低延迟的应用程序提供服务。由于其分布式体系结构和多节点实现,NDB集群还具有特定的约束,可能会阻碍一些工作负载的良好执行。关于数据库驱动的应用程序工作负载的一些常见类型,NDB和InnoDB存储引擎在行为上的一些主要差异如下表所示:
负载 | InnoDB | NDB 集群 |
---|---|---|
大容量OLTP应用程序 | Yes | Yes |
DSS应用(数据marts,分析) | Yes | Limited (Join operations across OLTP datasets not exceeding 3TB in size) |
自定义应用程序 | Yes | Yes |
打包的应用程序 | Yes | Limited (通过主键访问); NDB 8.0集群支持外键 |
网络电讯应用(HLR, HSS, SDP) | No | Yes |
会话管理和缓存 | Yes | Yes |
电子商务应用程序 | Yes | Yes |
用户档案管理,AAA协议 | Yes | Yes |
NDB和InnoDB特性总结
使用InnoDB主要关心的需求
- 外键
注: NDB 集群 8.0支持外键
- 全表扫描
- 非常大的数据、行或事物
READ COMMITTED
以外的事务类型
使用NDB主要关心的需求
- NDB 集群8.0支持外键
- 写分离
- 99.999%的运行可靠性
- 在线添加节点、在线修改
- 多个SQL 和NoSQL API
- 实时性能
BLOB
列限制使用- 支持外键
NDB和InnoDB存储引擎比较相关推荐
- Mysql NDB and InnoDB 存储引擎区别
NDB存储引擎使用一个分布式的实现,无共享架构,这使它在许多方面的行为不同于InnoDB.对于那些不习惯使用NDB,由于事务.外键.表限制,其分布式性质可能会导致意外行为.这些在下表中显示: Feat ...
- Mysql技术内幕——InnoDB存储引擎
一.mysql体系结构和存储引擎 1.1.数据库和实例的区别 数据库:物理操作系统或其他形式文件类型的集合.在mysql下数据库文件可以是frm,myd,myi,ibd结尾的文件. 数据库实例:由数据 ...
- mysql技术内幕innodb存储引擎——表索引算法和锁_(转)Mysql技术内幕InnoDB存储引擎-表索引算法和锁...
表 原文:http://yingminxing.com/mysql%E6%8A%80%E6%9C%AF%E5%86%85%E5%B9%95innodb%E5%AD%98%E5%82%A8%E5%BC% ...
- mysql技术innodb存储引擎读后感_《Mysql技术内幕-InnoDB存储引擎》读书笔记 (一)...
@(Mysql) 官方数据库 下载 导入/data/mysql57/bin/mysql --socket /data/mysql3306/mysql.socket -uroot -ppassword1 ...
- MySQL InnoDB存储引擎
呵呵哒... MySQL体系结构和存储引擎 首先要搞懂的是什么是数据库,什么是数据库实例. 数据库:物理操作系统文件或其他形式文件类型的集合. 实例:MySQL数据库由后台线程以及一个共享内存区组成, ...
- binlog数据库不写入binlog_MySQL数据库及InnoDB存储引擎的日志文件
船头上迎面而来的海风特别有劲道但却总有种苦咸的味道,他睁着通红的眼睛,紧绷着嘴.尽管眼前一望无垠的海面平静如清晨的托雷维耶哈盐湖湖面,但他的心仍然翻涌着昨晚暴风雨中的激浪.这是离开陆地,在海上航行这么 ...
- Mysql技术内幕InnoDB存储引擎——InnoDB存储引擎
特此申明: 前段时间找工作所以看了<Mysql技术内幕InnoDB存储引擎>,整理的时候除了参考网上已有的笔记贴,加上自己整合的,可能和别人有雷同之处.不过无所谓啦,写出来自己看看,需要的 ...
- mysql innodb 存储引擎
--MySQL 结构有两部分组成 1.MySQL server 层 2.存储引擎层 --注:到 存储引擎层之前都属于 MySQL server 层 MySQL 5.1到 5.7 ,大版本 没有变化 , ...
- innodb存储引擎学习总结
注明:<MySQL技术内幕 InnoDB存储引擎>个人学习总结 目录 第一章:mysql体系结构和存储引擎 1.1定义数据库和实例 1.2mysql的结构体系 mysql的组成部分 1.3 ...
- mysql技术之innodb存储引擎
mysql技术内幕InnoDB存储引擎 基本信息作者姜承尧类别技术-mysql简介第二版推荐指数阅读日期开始日期终止日期书摘mysql体系结构和存储引擎特点可移植数据库定义数据库和实例定义数据库物理操 ...
最新文章
- 系统计算机大小怎么更改,调整设置电脑图标大小的方法
- 程序员的高速学习法——以JS学习为例,进行图解
- MVC中helper的用法。
- webstock php,workerman_connection
- mybatis 查询之神坑
- 指针、引用以及const限定符、constexpr限定符
- java 数字计算精度问题
- 如何成为云原生时代的卓越架构师
- myEclipse的subversion插件Subclipse
- java hibernate注解_Hibernate注解方法使用总结
- js es6 map 与 原生对象区别
- 3D模型欣赏:《Sword girl》古风 女战士角色 次世代 zbrush雕刻
- 【工业大数据】35页PPT讲解:工业大数据特点、价值及其计算
- 临时解决Mac OS系统下kernel_task占用大量CPU资源导致系统卡顿一例(不用删plist文件)
- 数学基础知识总结 —— 1. 常用导数公式
- 一个奇鸽船新版本 v1.32
- Lerna 入门级教程
- html表格中加背景图片,关于在HTML表格中插入背景图片图片重复显示的问题
- ORA-01452报错的一种解决办法
- 移动开发:Android数据连接浅析