在SQLServer数据库大型应用解决方案的经验总结

在SQLServer数据库大型应用解决方案的经验总结
随着互联网应用的广泛普及,海量数据的存储与访问成为系统设计中的一个瓶颈。对于一个大型的互联网应用,一百万甚至几亿的PV每天无疑会创建数据库非常高的负荷,系统的稳定性和可扩展性都造成了很大的问题。

1。负载均衡技术
负载均衡是由一组相互独立计算机系统,采用常规或专用网络连接路由器连接在一起,节点与其他常见的负载均衡和客户端上的压力配合,整个集群可以看作是一种具有超高性能的独立服务器平台。

1。实现原理
实现数据库的负载均衡技术,首先,有一个可以控制连接数据库的控制端。在这里,它拦截数据库和程序之间的直接连接,所有程序访问的中间层,然后访问数据库的中间层。在这种方式中,我们可以具体控制对数据库的访问,然后我们可以采取有效的平衡策略,根据数据库的当前负载调整的数据库连接。

2。多基地数据同步的实现
对于负载均衡,最重要的是,所有服务器的数据实时同步。这是一个集群的必要,因为如果不实时或异步,然后用户从服务器读取不同的数据从另一个服务器上读取数据,这是不允许的。所以数据库的数据同步,必须执行。这样,你可以在查询中有多个资源,并达到一个平衡。常用的方法是莫比斯SQL Server莫比斯SQL集群,集群服务器将用于每个机数据库中的核心程序驻留,核心程序称为莫比乌斯对SQL Server中间件,主要作用是改变在监测数据库的数据将变化的数据同步到其他数据库,数据同步客户端完成后会得到响应,同步并行的过程中完成的,所以在多个数据库和数据库同步是基本相同的时间;此外,同步的过程是在商业环境中完成,以保证在任何时刻的数据的多个副本,数据一致性,因为在数据库主机创新的Moebius中间件,不仅可以让中间件知道数据的变化,并通过数据的变化引起的SQL语句,根据智能SQL语句来采取不同的数据同步策略的类型确保数据同步的最小成本。
数据棒数量少,数据量小,数据直接同步。
数据条的数量很小,但它包含大数据类型,如文本、二进制数据等,然后先对数据进行压缩,然后对其进行同步,从而减少占用网络带宽和传输时间。
有很多数据栏。此时,中间件将获得更改数据的SQL语句,然后分析SQL语句,分析其执行计划和执行成本,并选择是否同步数据或将SQL语句同步到其他数据库。

3,优点和缺点
(1)强大的可伸缩性:当系统需要更多的数据库处理速度时,简单地增加数据库服务器就可以扩展。
(2)可维护性:当节点失效时,系统将自动检测故障并传输故障节点的应用程序,以保证数据库的连续工作
(3)安全性:由于数据在多台服务器上同步,可以实现数据冗余,保证数据安全,并成功地将数据库放入内部网络,更好地保护数据库的安全性。
(4)易用性:它对应用程序是完全透明的,集群暴露在IP上。

(1)负载不能根据Web服务器的处理能力分配。
(2)负载均衡器(控制终端)故障将导致整个数据库系统瘫痪。

两。数据库与读写分离
1、实现原理:读写分离,简单地说,单独的数据库读写不同的数据库服务器的操作,这样可以有效地减少数据库的压力和缓解IO压力。主要提供的数据库写操作,读操作从数据库,事实上,在许多系统中,主要的读取操作。当主数据库写操作,数据同步到从数据库,可有效地保证数据库的完整性。
(读写易趣网的比例是260:1,易趣网的读写分离)
(微软数据库分发)

方法:2、MS SQL服务器可以使用数据库复制发布的定义实现,实现读写分离,复制是一组数据从一个数据源的多个数据源复制,发布到网站上的一个有效的数据类型的多个存储,使用复制技术,用户可以一份发表于多个服务器的数据复制技术保证,数据自动同步更新,分布在不同的位置,从而保证了数据的一致性。有三种类型的SQL Server复制技术,这是快照复制、事务复制和合并replication.sql服务器主要用于发布和订阅服务处理的复制。源数据位于其中的版本号是发布服务器,负责发布数据。分发服务器包含一个分布数据库,它可以接收数据的所有更改并保存这些更改,然后将这些更改分发给订阅服务器。

3,优点和缺点
(1)数据的实时性较差:数据与自读服务器不同步。当数据写入主服务器时,数据将在下一次同步之后查询。

(2)当数据量较大时,同步效率不高:当单个表数据由于索引、磁盘IO等问题而无法插入和更新时,性能会非常差。

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

(4)高性能、高可靠性和可扩展性阅读:只读服务器,因为没有写操作,会大大减少磁盘IO性能问题,大大提高工作效率;只读服务器可以使用负载均衡,主要的数据库发布到多个只读服务器执行读操作的可扩展性。

三,数据库/数据表拆分(分布式)

在一定的条件下,将存储在数据存储在多个数据库,分布式存储相同的数据库,通过路由规则路由访问特定的数据库,所以每次访问的脸是不是一个单一的服务器,但是服务器,可以降低单台机器的负载压力。提示:SQLServer 2005版本后,表分区可以支持友好。

垂直(垂直)解析:指的是由功能模块(如订单存储库、商品库、用户库等)进行拆分,这样,多个数据库之间的表结构就不同了。

水平(水平)分割:同一个表的数据被划分为不同的数据库,这些数据库中的表结构完全相同。
(纵向拆卸)
(水平拆卸)

1、实现原理:垂直分辨率的使用,主要看是否合适的应用型分割模式,如系统可分为单系统,商品管理系统,客户管理系统的业务系统在明代,垂直分辨率可以起到很好的压力分散数据库角色的业务模块。不清楚,并有较高的耦合系统(表相关)度不适合这种类型的分割使用。但垂直拆分的方法并不能解决所有的问题如压力,有5000w订单,订单基地运行压力仍然很大,如果我们需要在这表增加(插入)是一种新的数据插入,建成后的数据库可以为表建立索引,反过来,5000w指标体系的成本数据的建立是不容忽视的,如果我们把表分成100个表,从table_001到table_1005000w数据平均,每个子表里面只有50万行数据,那么我们只有50W的插入数据一排在索引表的数据会显示出下降的幅度,提高了数据库的运行效率,提高了数据库的并发性,分辨率水平分割

2,实现方法:垂直拆分,拆分方式实现比较简单,根据表的名称访问不同的数据库即可。以下是前面的一些观点。

(1)分辨率为:如订购的前一天,一年才分2003 DB1、DB2 2004,等等。当然,它也可以根据关键标准分。

优点:部分迁移

缺点:数据的分布是不均匀的,2003的顺序可能是100W,和2008是500W。

(2):哈希散列成型user_id(或者user_id是数字类型如果user_id值也可以直接),然后用一个具体的数字,如数据库应用程序需要被切割成4个数据库,我们使用4号的user_id哈希值运算,这是user_id % 4,然后每个操作都会有四种可能的结果是:1当2相应的DB1的结果;当结果为3时,相应的DB2;结果是0时,对应DB3;db4,非常均匀地分布数据为4分贝。

优点:数据分布均匀
缺点:数据迁移的麻烦;数据不能分摊根据机器性能。

(3)将数据库配置保存在身份验证库中
它是建立一个数据库。该数据库保持映射关系从user_id DB。每次访问数据库时,我们首先需要查询数据库以获得特定的数据库信息,然后才可以进行我们需要的查询操作。
优势:强弹性,一对一关系
缺点:在每个查询之前多查询一次,这将导致性能的某些损失。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部