首页 > 编程知识 正文

数据仓库与数据挖掘应用教程李春葆,数据库是多个结构化的数据集合

时间:2023-05-05 07:40:08 阅读:137884 作者:449

目前,随着互联网连接的激增,一些大型网站使用数据库集群来提高数据库的可靠性和性能。 那么,在介绍数据库集群之前,有几个问题需要弄清楚。

1 .为什么要使用数据库群集

(1)使用数据库集群可以分离读写,提高数据库的系统性能。

正如您所知,mysql支持分布式。 MySQL Proxy最强大的功能之一是实现“读写分离”。 基本原理是让主数据库处理事务查询,从数据库

物理选择查询。 数据库复制用于使事务查询所做的更改与群集中的从数据库同步,并确保从数据库和主数据库中的数据保持一致。 当然,主服务器也可以提供查询服务。

使用读写分离的最大作用不仅仅是环境服务器的压力。 请看这张图:

——————————————————————————————————————————————————————————

为什么读写分离可以提高数据库性能? (摘自互联网)

1 .物理服务器增加,负载增加

2 .主从只负责各自的写入和读取,大大缓解x锁和s锁的竞争

3 .可以从库中配置myisam引擎,从而提高查询性能,减少系统开销

4 .从库中同步主库的数据和直接从主库写是有区别的。 从主库发送的binlog中恢复数据。 但最重要的区别在于,从主库向库发送binlog是异步的,从库恢复数据也是异步的

5 .读写分离比写场景更适合。 如果只有一台服务器,则如果选择过多,update和delete将被这些选择访问的数据堵塞,并等待选择结束,从而导致并发性不高。 对于写入和读取比率相近的APP应用,需要部署双主相互复制

6 .可以从库中启动几个:--skip-innodb、--skip-bdb、--low-priority-updates、--delay-key-write=ALL等当然,这些设定也需要根据具体的业务需求来决定,不一定能用

7 .分散读取。 假设有1主3从,不考虑上述1中所述的从机的单方面设置,假设现在1分钟内有10条写入,150条读取。 那么,1主站3从站总共相当于40条写入,但读出总数没有变化,所以平均每个服务器承担10条写入和50条读出(主库不承担读出操作)。 因此,写入保持不变,但读取会大幅分散,从而提高系统性能。 此外,分散读取也会间接提高写入性能。 所以,整体性能提高了。 简言之,就是用机器和带宽交换性能。 MySQL官方文档有相关的运算公式。 有关正式文档,请参考6.9常见问题解答中的“MySQL复制何时以及可以在多大程度上提高系统性能”

8.MySQL复制的另一大功能是增加冗馀度和可用性。 在一个数据库服务器关闭后,通过调整另一个从库可以以最快的速度恢复服务,因此不能只查看性能。 也就是说,1主机1从机也可以。

——————————————————————————————————————————————————————————

2 .数据库集群与分布式数据库有何区别?

一句话,分布式并行工作,集群串联工作。

1 )分散是指将不同的业务分散到不同的地方。 集群是指将多台服务器集中在一起,实现相同的业务。 每个分布式节点都可以创建群集。 集群不一定是点

布式的。

比如新浪网,访问者多了,他就可以建立集群。 在前面放置应答服务器,后面几台服务器完成同样的业务。 如果有业务访问时,响应服务器发送给哪个服务器的

负荷不是很重,要在哪个台上完成? 从狭义上理解方差,与集群相同,但其组织比较松散。 它不像一个集群,而是有一个组织性的,即使一台服务器崩溃了,其他服务器也可以登上山顶。

每个分布式节点执行不同的业务,当一个节点崩溃时,任何业务都将无法访问。

2 )简单来说,分布式通过减少单个任务的执行时间来提高效率,而集群通过增加每单位时间执行的任务数来提高效率。

例如,如果一个任务由10个子任务组成,每个子任务单独执行需要一个小时,则在一台服务器上执行任务需要10个小时。

采用分布式方案,提供10台服务器。 每个服务器只处理一个子任务。 不考虑子任务之间的依赖关系,执行此任务只需一个小时。 这种工作模式的典型代表之一是

Hadoop的地图/记录分布式计算模型)

在群集方案中,同样提供10台服务器,每个服务器都可以独立处理此任务。 假设10个任务同时到达,10个服务器同时运行,1小时后10个任务同时完成。 于是,

从整体来看,还是一个小时内完成一项任务!

请看下图:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。