从数据库架构设计的角度,主要有三种,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篇文章分类和索引》

三种数据库架构的介绍相关推荐

  1. 网络资产管理系统_固定资产管理系统的三种网络架构方式

    随着互联网技术的发展和信息技术的广泛使用,固定资产管理系统在各行业的应用越来越普及,固定资产管理系统作为当今主流的企业固定资产信息化管理模式,能够对企业固定资产进行有效管理并提升企业的管理水平.对于固 ...

  2. php调用mysql库_PHP调用三种数据库的方法(1)

    PHP调用三种数据库的方法(1) 更新时间:2006年10月09日 00:00:00   作者: MySQL是一个小巧灵珑的数据库服务器软件,对于中.小型应用系统是非常理想的.除了支持标准的ANSI ...

  3. sql 单引号_三种数据库的 SQL 注入详解

    SQL 注入原理 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用 ...

  4. 三种数据库的 SQL 注入详解

    SQL 注入原理 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用 ...

  5. qlserver、Mysql、Oracle三种数据库的优缺点总结

    这篇文章主要介绍了sqlserver.Mysql.Oracle三种数据库的优缺点总结,需要的朋友可以参考下 一.sqlserver 优点: 易用性.适合分布式组织的可伸缩性.用于决策支持的数据仓库功能 ...

  6. mysql锁级别_MySql三种级别锁的介绍及解锁命令

    MySql三种级别锁的介绍及解锁命令 (2014-04-29 11:59:37) 标签: 那末 用以 便能 页级的典型代表引擎为BDB. 表级的典型代表引擎为MyISAM,MEMORY和很久之前的IS ...

  7. Java三种技术架构

    Java语言的三种技术架构: J2SE:JAVA 2 Platform Standard  Edition (标准版) SE是为开发普通桌面和商务应用程序开发的解决方案,这是学习其他两者的基础. J2 ...

  8. 浅议DAS、NAS、SAN三种存储架构

    浅议DAS.NAS.SAN三种存储架构 目前磁盘存储市场上,存储分类(如下表一)根据服务器类型分为:封闭系统的存储和开放系统的存储,封闭系统主要指大型机,AS400等服务器,开放系统指基于包括Wind ...

  9. Java 基础入门随笔(1) JavaSE版——java语言三种技术架构

    1.java语言的三种技术架构: J2SE(java 2 Platform Standard Edition):标准版,是为开发普通桌面和商务应用程序提供的解决方案.该技术体系是其他两者的基础,可以完 ...

最新文章

  1. Matlab实用程序--图形应用-双y轴图形的绘制
  2. Python操作Json、Csv、Excel文件
  3. 如何去掉域名中的www?
  4. 华为畅享9s可以升级鸿蒙吗,珍珠全面屏!华为畅享9S/9e正式发布:千元三摄加持...
  5. 基于JavaFX的SimpleDateFormat演示程序
  6. C++ cout格式化输出
  7. java 拷贝文件夹的实现
  8. Oracle→数字函数、字符函数、时间函数、SYSDATE、TO_CHAR()、TO_DATE()、TO_NUMBER()、NVLNVL2NULLIF、ROW_NUMBER()
  9. 服务器增加cpu图,Intel服务器路线图:14nm再战两年 上胶水封装
  10. 百度人脸识别之人脸注册AddUser
  11. python打包android的app,出现 Could not load the Qt platform plugin “xcb“的解决方法
  12. linux系统hostapd强制使用40MHz频宽
  13. 全面理解Python迭代器和生成器
  14. 点击按钮复制微信号/公众号,并打开微信APP搜索H5如何制作。
  15. (四)eos开发实战dapp+游戏--发币(TKB币)
  16. 红苹果IP代理软件 v6.2
  17. 记录R语言及python实现地质图形展示
  18. 南京智慧城市建设显成效 市民卡发卡量突破960万张
  19. Map.entry详解
  20. 《java从入门到放弃》_《Java从入门到放弃》JavaSE入门篇:JDBC(入门版)

热门文章

  1. java将数组拼接为字符串
  2. 马云与史玉柱经典语录
  3. Thingsboard入门教程:本地环境搭建和源码编译安装,献给thingsboard编译失败的同学,教程不断完善中,文章最后是thingsboard常见编译失败的问题总结
  4. 深谈计算机网络互联技术论文,浅谈计算机网络技术对音乐发展的影响
  5. 中福在线第二场初赛告捷,正赛将于19日火爆开启
  6. oracle处理字符串之正则表达式查询只包含字母或数字的数据
  7. MA5680T开局配置脚本
  8. 【Coursera】DNS Chooser找到最快IP的上网加速工具
  9. 古龙与武侠小说的危机
  10. laravel-admin登录页面进不去