MySQL、PG属于分布式数据库吗?怎么区分数据库是否为分布式?

MySQL、PG属于分布式数据库吗?怎么区分数据库是否为分布式?,第1张

MySQL、PostgreSQL属于关系型数据库 分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。比较火的分布式数据库有tidb和 sequoiadb

当前做分布式的厂商有几家,我知道比较出名的有“华为云分布式数据库DDM”和“阿里云分布式数据库”,感兴趣可以自行搜素了解下。

分布式数据库的几点概念可以了解一下。

数据分库:

以表为单位,把原有数据库切分成多个数据库。切分后不同的表存储在不同的数据库上。

以表中的数据行记录为单位,把原有逻辑数据库切分成多个物理数据库分片,表数据记录分布存储在各个分片上。

路由分发:

在分布式数据库中,路由的作用即将SQL语句进行解析,并转发到正确的分片上,保证SQL执行后得到正确的结果,并且节约QPS资源。

读写分离:

数据库中对计算和缓存资源消耗较多的往往是密集或复杂的SQL查询。当系统资源被查询语句消耗,反过来会影响数据写入 *** 作,进而导致数据库整体性能下降,响应缓慢。因此,当数据库CPU和内存资源占用居高不下,且读写比例较高时,可以为数据库添加只读数据库。

(1)方案一(数据库保存所有服务器索引信息)

全对称结构,没有中央服务器

web方案:

只从本地数据库检索符合条件的记录,给出结果

每次检索都要从本地服务器的海量数据中进行

数据库方案:

数据库保存所有服务器的索引内容

缓存命中率高的记录,减少检索时间

服务器负载分析:

服务器负载假设:

一百个结点,每结点一百人同时使用,每个结点一万条记录

web服务器:同时一百线程在本地数据库服务器检索

数据库服务器:每次接收一百个查询请求;每个请求要从一百万条索引中检索(最坏的情况);缓冲机制可以稍微减轻负担

数据更新 *** 作:

同时更新所有数据库/只更新本地,服务器间相互同步

方案二(数据库保存本地索引及少量缓冲)

每高校作为一个结点

所有结点全对称结构,网络中没有一个中央服务器

web方案:

接收到请求时同时多线程向其它服务器同时搜索(服务器压力问题?)

数据库方案:

数据库保存本地数据

数据库保存一定量缓冲数据,

服务器负载分析:

服务器负载假设:

一百个结点,每结点一百人同时使用

则每个web服务器同时发起一万个线程向其它数据服务器搜索(oops!)

每个数据库服务器会同时接收到一万个查询请求(oops!)

采用学习过程只能少量减少查询请求和web服务器搜索线程

数据更新 *** 作:

只更新本地

方案三(中央服务器方案一)

每高校一个结点

每结点结构相同,连接到同一个中央服务器

web方案

每个查询向中央服务器进行,由中央服务器实行检索,中央服务器返回检索结果

数据库方案

中央数据库保存所有索引信息

每结点可以只用小型数据库保存本地用户和其它信息即可

服务器负载分析:

服务器负载假设:

一百个结点,每结点一百人同时使用,每结点资料记录一万条

web服务器:同时发起一百个进程向中央数据库查询

数据库服务器(中央):同时接收一万条查询请求并返回大容量结果

数据库服务器(结点):少量工作

数据更新 *** 作:

只更新中央服务器

方案四(中央服务器方案二)

每高校一个结点

每结点结构相同,连接到同一中央服务器

web方案:

每个查询向中央服务器进行,由中央服务器根据查询内容进行转发到结点数据库,再由结点数据库返回结果

数据库方案:

中央服务器保存各结点分类信息,根据页面请求的分类转发查询到相应服务器

服务器负载分析:

服务器负载假设:

一百个结点,每结点一百人同时使用,每结点资料记录一万条,每结点一百个类别

web服务器:同时一百个进程向中央数据库查询

数据库服务器(中央):同时接收一万条请求并转发

数据库服务器(结点):从中央服务器接收查询请求,最坏情况下每结点接收到一万条查询请求

数据更新 *** 作:

只更新本地服务器

分类变化时更新中央服务器


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6109230.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-15
下一篇 2023-03-15

发表评论

登录后才能评论

评论列表(0条)

保存