三种数据库架构的介绍
从数据库架构设计的角度,主要有三种,Shared Everything、Shared Disk以及Shared Nothing。
1. Shared Everything
一般指的是单个主机的环境,完全透明共享的CPU/内存/硬盘,并行处理能力是最差的,典型代表就是SQL Server、单机版Oracle和MySQL,一般不考虑大规模的并发需求,架构比较简单,一般的应用需求基本都能满足。
2. Shared Disk
各处理单元使用自己的私有CPU和Memory,共享磁盘系统。典型的代表是Oracle RAC、DB2 PureScale。例如Oracle RAC,他用的是共享存储,做到了数据共享,可通过增加节点来提高并行处理的能力,扩展能力较好,使用Storage Area Network (SAN),光纤通道连接到多个服务器的磁盘阵列,降低网络消耗,提高数据读取的效率,常用于并发量较高的OLTP应用。其类似于SMP(对称多处理)模式,但是当存储器接口达到饱和的时候,增加节点并不能获得更高的性能,同时更多的节点,则增加了运维的成本。
3. Shared Nothing
各处理单元都有自己私有的CPU/内存/硬盘等,Nothing,顾名思义,不存在共享资源,类似于MPP(大规模并行处理)模式,各处理单元之间通过协议通信,并行处理和扩展能力更好。典型代表DB2 DPF、带分库分表的MySQL Cluster,各节点相互独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转。
如果更准确地说,Shared Nothing架构又分为两种,一种是分布式架构,将数据库中的数据按照某一标准分布到多台机器中,查询或插入时按照条件查询或插入对应的分区。另外一种是每一个节点完全独立,节点之间通过网络连接,通常是通过光纤等专用网络。
我们常说的Sharding其实就是Shared Nothing,他是将某个表从物理存储上被水平分割,并分配给多台服务器(或多个实例),每台服务器可以独立工作,具备共同的schema,例如MySQL Proxy和Google的各种架构,只需增加服务器数就可以增加处理能力和容量。
随着云计算、虚拟化的发展,这种架构的使用场景越来越多,例如双十一购物、春运抢票、微博热搜等,在Shared Nothing架构下,可以快速实现资源的扩容和收缩,这是Shared Everything和Shared Disk架构不具备的优势。
但是凡事都得两面看,带来资源灵活性的同时,他对应用设计开发人员有可能提出了更高的要求,例如有些需要进行分区的,应用得配合改造,跨机访问上,可能比单机,要考虑的更多。
上面提到的MPP,指的是大规模并行分析数据库(Analytical Massively Parallel Processing (MPP) Databases),他是针对分析工作负载进行了优化的数据库,一般需要聚合和处理大型数据集。MPP数据库往往是列式的,因此MPP数据库通常将每一列存储为一个对象,而不是将表中的每一行存储为一个对象。这种体系结构使复杂的分析查询可以更快,更有效地处理。例如TeraData、Greenplum,GaussDB100、TBase。
近期更新的文章:
《关于数据治理的读书笔记 - 数据治理路线图规划》
《Oracle优化器对谓词顺序处理的一个场景》
《究竟哪些语句是属于DDL?》
《最近碰到的问题》
《关于数据治理的读书笔记 - 数据治理能力成熟度评估》
文章分类和索引:
《公众号900篇文章分类和索引》
三种数据库架构的介绍相关推荐
- 网络资产管理系统_固定资产管理系统的三种网络架构方式
随着互联网技术的发展和信息技术的广泛使用,固定资产管理系统在各行业的应用越来越普及,固定资产管理系统作为当今主流的企业固定资产信息化管理模式,能够对企业固定资产进行有效管理并提升企业的管理水平.对于固 ...
- php调用mysql库_PHP调用三种数据库的方法(1)
PHP调用三种数据库的方法(1) 更新时间:2006年10月09日 00:00:00 作者: MySQL是一个小巧灵珑的数据库服务器软件,对于中.小型应用系统是非常理想的.除了支持标准的ANSI ...
- sql 单引号_三种数据库的 SQL 注入详解
SQL 注入原理 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用 ...
- 三种数据库的 SQL 注入详解
SQL 注入原理 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用 ...
- qlserver、Mysql、Oracle三种数据库的优缺点总结
这篇文章主要介绍了sqlserver.Mysql.Oracle三种数据库的优缺点总结,需要的朋友可以参考下 一.sqlserver 优点: 易用性.适合分布式组织的可伸缩性.用于决策支持的数据仓库功能 ...
- mysql锁级别_MySql三种级别锁的介绍及解锁命令
MySql三种级别锁的介绍及解锁命令 (2014-04-29 11:59:37) 标签: 那末 用以 便能 页级的典型代表引擎为BDB. 表级的典型代表引擎为MyISAM,MEMORY和很久之前的IS ...
- Java三种技术架构
Java语言的三种技术架构: J2SE:JAVA 2 Platform Standard Edition (标准版) SE是为开发普通桌面和商务应用程序开发的解决方案,这是学习其他两者的基础. J2 ...
- 浅议DAS、NAS、SAN三种存储架构
浅议DAS.NAS.SAN三种存储架构 目前磁盘存储市场上,存储分类(如下表一)根据服务器类型分为:封闭系统的存储和开放系统的存储,封闭系统主要指大型机,AS400等服务器,开放系统指基于包括Wind ...
- Java 基础入门随笔(1) JavaSE版——java语言三种技术架构
1.java语言的三种技术架构: J2SE(java 2 Platform Standard Edition):标准版,是为开发普通桌面和商务应用程序提供的解决方案.该技术体系是其他两者的基础,可以完 ...
最新文章
- Matlab实用程序--图形应用-双y轴图形的绘制
- Python操作Json、Csv、Excel文件
- 如何去掉域名中的www?
- 华为畅享9s可以升级鸿蒙吗,珍珠全面屏!华为畅享9S/9e正式发布:千元三摄加持...
- 基于JavaFX的SimpleDateFormat演示程序
- C++ cout格式化输出
- java 拷贝文件夹的实现
- Oracle→数字函数、字符函数、时间函数、SYSDATE、TO_CHAR()、TO_DATE()、TO_NUMBER()、NVLNVL2NULLIF、ROW_NUMBER()
- 服务器增加cpu图,Intel服务器路线图:14nm再战两年 上胶水封装
- 百度人脸识别之人脸注册AddUser
- python打包android的app,出现 Could not load the Qt platform plugin “xcb“的解决方法
- linux系统hostapd强制使用40MHz频宽
- 全面理解Python迭代器和生成器
- 点击按钮复制微信号/公众号,并打开微信APP搜索H5如何制作。
- (四)eos开发实战dapp+游戏--发币(TKB币)
- 红苹果IP代理软件 v6.2
- 记录R语言及python实现地质图形展示
- 南京智慧城市建设显成效 市民卡发卡量突破960万张
- Map.entry详解
- 《java从入门到放弃》_《Java从入门到放弃》JavaSE入门篇:JDBC(入门版)