当前位置:Gxlcms > 数据库问题 > 数据库(1)

数据库(1)

时间:2021-07-01 10:21:17 帮助过:2人阅读

  (1)数据的实时性差:数据不是实时同步到只读服务器上的,当数据写入主服务器后,要在下次同步后才能查询到。

  (2)数据量大时同步效率差:单表数据量过大时插入和更新因索引,磁盘IO等问题,性能会变的很差。

  (3)同时连接多个(至少两个)数据库:至少要连接到两个数据数据库,实际的读写操作是在程序代码中完成的,容易引起混乱

  (4)读具有高性能高可靠性和可伸缩:只读服务器,因为没有写操作,会大大减轻磁盘IO等性能问题,大大提高效率;只读服务器可以采用负载均衡,主数据库发布到多个只读服务器上实现读操作的可伸缩性。

注意点:

        在进行写操作时,考虑到数据的唯一性,写数据的分配不能使用随机算法,一般采用哈希映射。举个例子,很多网站注册的时候已经注册的用户名不能重复注册,如果使用的是随机算法,用户A注册了用户名为zhangsan,写操作分配到主机A,用户B也注册了用户zhangsan,写操作分配到主机B,那么就很难控制数据的唯一性,建议采用哈希映射,比如说哈希规则为将请求为z的写操作统一分配给主机A,以避免此类情况的产生。

参考资料:

         http://tech.it168.com/a2012/0110/1300/000001300144_2.shtml



三、负载均衡

 负载均衡集群是由一组相互独立的计算机系统构成,通过常规网络或专用网络进行连接,由路由器衔接在一起,各节点相互协作、共同负载、均衡压力,对客户端来说,整个群集可以视为一台具有超高性能的独立服务器。

.1)实现原理

       实现数据库的负载均衡技术,首先要有一个可以控制连接数据库的控制端。在这里,它截断了数据库和程序的直接连接,由所有的程序来访问这个中间层,然后再由中间层来访问数据库。这样,我们就可以具体控制访问某个数据库了,然后还可以根据数据库的当前负载采取有效的均衡策略,来调整每次连接到哪个数据库。

.2)优缺点:
   (1) 扩展性强:当系统要更高数据库处理速度时,只要简单地增加数据库服务器就 可以得到扩展。
   (2) 可维护性:当某节点发生故障时,系统会自动检测故障并转移故障节点的应用,保证数据库的持续工作。
   (3) 安全性:因为数据会同步的多台服务器上,可以实现数据集的冗余,通过多份数据来保证安全性。另外它成功地将数据库放到了内网之中,更好地保护了数据库的安全性。
   (4) 易用性:对应用来说完全透明,集群暴露出来的就是一个IP
   (5) 不能够按照Web服务器的处理能力分配负载。
   (6) 负载均衡器(控制端)故障,会导致整个数据库系统瘫痪。

参考文件:

        http://www.cnblogs.com/happyday56/archive/2012/01/11/2319136.html



四、分库,分表

为了应对单库多表随着数据库表及表数据量的不断增加带来的性能瓶颈,切分数据库也成为一种不错的解决方式,其主要思想是将一个数据库切分成多个不同部分到多个数据库中,根据业务系统的不同,切分又可以分为垂直切分和水平切分两种。

常用分库分表方法:

1.)水平切分

       水平切分主要是将一张表中的不同数据切分到不同库中,相对垂直切分而言,切分规则比较复杂,维护也更加复杂一些。常用的水平切分场景,如果一张表中存放有大字段或者内容较多的字段,而且这些字段查询的概率较低,一般建议分表操作,将一张表拆分成两张对应的表,需要获取这些大字段或者内容较多的字段时查询分表,通过这种拆分,可以大大提高效率。

.2)垂直切分

     垂直切分往往是将不同业务模块的表切分到不同的数据库中,比较适合业务逻辑清晰,业务之间耦合度低且相互影响小的系统,相对而言规则较简单,实施也容易。

而实际应用中,往往是将垂直切分跟水平切分结合起来,往往先垂直切分,再进行水平切分,如下图(引用其他博客的图)

技术分享

参考资料:

        http://blog.csdn.net/bluishglc/article/details/7696085



数据库(1)

标签:

人气教程排行