• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

基于MySQL的数据库集群系统的实现[图]_MySQL

mysql 搞代码 4年前 (2022-01-09) 26次浏览 已收录 0个评论

Mysql集群

MySQL教程是:基于MySQL的数据库集群系统的实现。您的WebApp系统是否正在使用一个MySQL的数据库系统?您的客户是不是总是抱怨页面结果反馈的非常慢?您的MySQL系统的负载是不是总是维持在一个本文来源gaodai$ma#com搞$代*码网2非常高的状态下?本文将为您提供一个分担MySQL系统的负载的方法,以及由此派生出来的一个MySQL-HA-Proxy的开发项目。使用本文提供的方法,您将以最小的源代码改动,获得MySQL系统的高效运转。

第一节 数据库集群技术的现状

目前数据库集群系统应用得比较成功,应用范围比较广泛的是:Oracle公司的Oracle9与IBM公司DB2。Oracle9采用Shared-storage的技术,DB2选择了Shared-nothing的技术,二者各有长短。

最新的数据库集群系统的理论基础是分布式计算,将数据分布到每个节点,所有的计算节点并行处理数据,将结果汇总。这样的方式无疑是最完美的。但是目前仍然不能实现全部的功能。

对于Shared-storage以及Shared-nothing的技术请参考Oracle以及IBM网站上的相关资料。

第二节 目前数据库应用状况

目前数据库应用状况大致分为两类,第一类是数据量在100G以下,数据库访问频繁,请求密集。主要是Web APP类型的应用,例如:网站,论坛等。这些Web APP类型的应用访问数据库的特点是:访问频繁,数据库每秒钟要接受几千次以上的查询,需要经常追加数据,同时对数据的响应速度要求比较高。另一类是用于科学计算、存储历史数据的应用,数据量往往达到几百G。这些应用访问数据库的特点是:多为查询操作,数据都是分批、定时、集中倒入数据库,数据库的记录非常多,积累了大量的数据,对数据库的响应速度没有太高要求。

第三节 暴露出来的问题

第一类应用,由于访问比较频繁,而且为了支持更多的访问,Web Server一般都使用了负载均衡的集群,但是对于数据库来说,由于无法实现集群操作,每秒钟的请求不断增加,随着服务器负载的增加,响应单个请求的速度越来越慢,如果库文件比较大,出现写操作的时候还会出现锁表时间过长等影响访问效率的事情。

第二类应用,主要是数据文件太大,每次处理数据都需要大量的时间,如果写错一个语句就需要花几个小时来重做查询。

第四节 如何解决

首先应当从硬件、软件、程序、索引、SQL语句这几个方面进行优化,如果仍然不能解决问题,我们就要考虑数据库系统的集群(并行处理)了。

对于第一类的应用,在数据库服务器正常运行,负载不高的情况下,应用对数据库系统的状况还是满意的。但是数据库系统负载过高之后,就会出现完成请求的时间加长,达不到系统的要求时间。既然负载是由于过多的请求造成的,我们就采取分担请求的方式,让一部分的请求去访问另外一台服务器,让单台服务器的负载降低,从而解决问题。

对于第二类的应用,就需要分布式计算的系统来解决了,一般的系统是无能为力了。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:基于MySQL的数据库集群系统的实现[图]_MySQL
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址