全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

为什么关系型数据库系统不易于scaling out(横向扩展)?

发布时间:2023-10-13 15:15:12
发布人:xqq

一、为什么关系型数据库系统不易于scaling out(横向扩展)

因为传统的SQL数据库没想到要分片存储,而现在的NewSQL开始考虑到这些问题了。当然分片存储也会遇到新的问题,不像NoSQL(除了图数据),NewSQL需要考虑如何避免SQL join的跨节点通讯。

TP – 实现serializability通常需要linearizability, 后者在分布式环境下等价于共识问题,所以很难扩展。

AP – 查询执行的parallel processes模式其容错和性能稳定性差,分布式环境难以扩展。

TP的难以扩展触及分布式系统本质问题,不好解决。

AP的话通过借鉴big data系统,采用stateless tasks执行方式是可以解决的。

延伸阅读:

二、为什么要持久化连接

这和 web 服务器的工作方式有关。web 服务器可以通过三种方法来利用 PHP 生成 web 页面。

名列前茅种方法是将 PHP 自以为 CGI“包装器”用作一个单独运行的语言解释器(CGI Wapper)。当以这种方法运行时,PHP 会为向 web 服务器的每个 PHP 页面请求创建并销毁 PHP 解释器的时候实例。由于其会随每个请求的结束而销毁,因此其获取的任何资源(例如指向 SQL 数据库服务器的链接)都会在销毁时关闭。在这种情况下,不会从使用持久连接中获得任何好处——因为根本不会持久。

第二,也是最流行的方法是把 PHP 用作多进程 web 服务器的一个模块,这种方法目前只适用于 Apache。多进程的服务器通常有一个父进程和一组子进程协调运行,子进程负责提供网页的工作。每当接收达到客户端提出请求时,该请求会传递给尚未给其它客户端提供服务的某个子进程。这也就是说当相同的客户端第二次向服务端发出请求时,它将有可能由与名列前茅次不同的某个子进程提供服务。在开启了一个持久连接后,所有请求 SQL 服务的后继页面都能够重用与 SQL 服务器建立的相同连接。

最后一种方法是将 PHP 用作多线程 web 服务器的插件。目前 PHP 支持 WSAPI 和 NSAPI(在 Windows 上),允许 PHP 作为 Netscape FastTrack(iPlanet)、Microsoft 的 Internet Information Server (IIS) 和 O’Reilly 的 WebSite Pro 等多线程服务器的插件使用。该行为与前面描述的多过程模型相同。

#it技术干货

相关文章

数据库中关系代数与关系运算的区别是什么?

数据库中关系代数与关系运算的区别是什么?

2023-10-13
PLSQL与win10不兼容怎么解决?

PLSQL与win10不兼容怎么解决?

2023-10-13
如何建立数据库,利用什么软件建立数据库?

如何建立数据库,利用什么软件建立数据库?

2023-10-13
为什么移动设备上不使用直接远程数据库?

为什么移动设备上不使用直接远程数据库?

2023-10-13

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取