为什么关系型数据库系统不易于scaling out(横向扩展)?
一、为什么关系型数据库系统不易于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 等多线程服务器的插件使用。该行为与前面描述的多过程模型相同。

相关推荐HOT
更多>>
Python的优缺点有哪些?
一、Python的优点1、简单易学Python的语法简单明了,易于理解和学习,非常适合初学者。2、丰富的第三方库Python拥有丰富的第三方库,可以快速开...详情>>
2023-10-14 20:19:16
B+树查询的稳定性为什么重要?
一、B+树查询的稳定性为什么重要首先最大的优势还是磁盘IO和范围,从我个人的看法看,稳定性(每次查询必须从根走到叶子节点)这意味行为可预估...详情>>
2023-10-14 17:40:38
进程如何找到pgd页表,页表的数据结构是什么?
一、进程找到pgd页表的方法在Linux内核中,每个进程都有一个指向其PGD的指针pgd,该指针位于进程描述符结构体(task_struct)中。进程可以通过...详情>>
2023-10-14 17:24:21
什么是单链表就地逆置?
一、什么是单链表就地逆置单链表就地逆置是一种常见的链表操作,它通过调整链表节点之间的指针关系,将单链表中的元素原地进行逆序排列。这种操...详情>>
2023-10-14 16:35:41热门推荐
为什么 CIS Benchmarks 非常重要?
沸为什么应使用 Docker?
热负载均衡有哪些优势?
热使用 XML 有哪些好处??
新python 在cmd 下执行脚本语句和在python shell 中的>>>下执行语句有什么区别?
Fortran语言中read*,和read(*,*)的区别?
边缘计算与CDN的区别是什么?
Django限制用户上传文件格式与大小的优异处理方式是什么?
Python单引号与双引号区别?
为什么iOS始终不支持应用双开深度分析给你答案?
高并发、高吞吐是什么?
Python的优缺点有哪些?
强引用、软引用、弱引用、幻象引用有什么区别?
Android传值Intent和Bundle区别?
技术干货






