校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > sqlserver數(shù)據(jù)庫(kù)大型應(yīng)用解決方案經(jīng)驗(yàn)總結(jié)

sqlserver數(shù)據(jù)庫(kù)大型應(yīng)用解決方案經(jīng)驗(yàn)總結(jié)

熱門(mén)標(biāo)簽:陽(yáng)光創(chuàng)信ai外呼獲客系統(tǒng)助力 云南全自動(dòng)外呼系統(tǒng)公司 衛(wèi)星地圖標(biāo)注距離 外呼系統(tǒng)的話術(shù) 競(jìng)圣地圖標(biāo)注服務(wù) 貴州外呼回?fù)芟到y(tǒng)是什么 智能語(yǔ)音車(chē)載電話機(jī)器人 安陽(yáng)天音防封電銷(xiāo)卡 智能外呼系統(tǒng)需要多少錢(qián)

隨著互聯(lián)網(wǎng)應(yīng)用的廣泛普及,海量數(shù)據(jù)的存儲(chǔ)和訪問(wèn)成為了系統(tǒng)設(shè)計(jì)的瓶頸問(wèn)題。對(duì)于一個(gè)大型的互聯(lián)網(wǎng)應(yīng)用,每天百萬(wàn)級(jí)甚至上億的PV無(wú)疑對(duì)數(shù)據(jù)庫(kù)造成了相當(dāng)高的負(fù)載。對(duì)于系統(tǒng)的穩(wěn)定性和擴(kuò)展性造成了極大的問(wèn)題。

一、負(fù)載均衡技術(shù)
負(fù)載均衡集群是由一組相互獨(dú)立的計(jì)算機(jī)系統(tǒng)構(gòu)成,通過(guò)常規(guī)網(wǎng)絡(luò)或?qū)S镁W(wǎng)絡(luò)進(jìn)行連接,由路由器銜接在一起,各節(jié)點(diǎn)相互協(xié)作、共同負(fù)載、均衡壓力,對(duì)客戶端來(lái)說(shuō),整個(gè)群集可以視為一臺(tái)具有超高性能的獨(dú)立服務(wù)器。

1、實(shí)現(xiàn)原理
實(shí)現(xiàn)數(shù)據(jù)庫(kù)的負(fù)載均衡技術(shù),首先要有一個(gè)可以控制連接數(shù)據(jù)庫(kù)的控制端。在這里,它截?cái)嗔藬?shù)據(jù)庫(kù)和程序的直接連接,由所有的程序來(lái)訪問(wèn)這個(gè)中間層,然后再由中間層來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。這樣,我們就可以具體控制訪問(wèn)某個(gè)數(shù)據(jù)庫(kù)了,然后還可以根據(jù)數(shù)據(jù)庫(kù)的當(dāng)前負(fù)載采取有效的均衡策略,來(lái)調(diào)整每次連接到哪個(gè)數(shù)據(jù)庫(kù)。

2、實(shí)現(xiàn)多據(jù)庫(kù)數(shù)據(jù)同步
對(duì)于負(fù)載均衡,最重要的就是所有服務(wù)器的數(shù)據(jù)都是實(shí)時(shí)同步的。這是一個(gè)集群所必需的,因?yàn)?,如果?shù)不據(jù)實(shí)時(shí)、不同步,那么用戶從一臺(tái)服務(wù)器讀出的數(shù)據(jù),就有別于從另一臺(tái)服務(wù)器讀出的數(shù)據(jù),這是不能允許的。所以必須實(shí)現(xiàn)數(shù)據(jù)庫(kù)的數(shù)據(jù)同步。這樣,在查詢的時(shí)候就可以有多個(gè)資源,實(shí)現(xiàn)均衡。比較常用的方法是Moebius for SQL Server集群,Moebius for SQL Server集群采用將核心程序駐留在每個(gè)機(jī)器的數(shù)據(jù)庫(kù)中的辦法,這個(gè)核心程序稱(chēng)為Moebius for SQL Server 中間件,主要作用是監(jiān)測(cè)數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)的變化并將變化的數(shù)據(jù)同步到其他數(shù)據(jù)庫(kù)中。數(shù)據(jù)同步完成后客戶端才會(huì)得到響應(yīng),同步過(guò)程是并發(fā)完成的,所以同步到多個(gè)數(shù)據(jù)庫(kù)和同步到一個(gè)數(shù)據(jù)庫(kù)的時(shí)間基本相等;另外同步的過(guò)程是在事務(wù)的環(huán)境下完成的,保證了多份數(shù)據(jù)在任何時(shí)刻數(shù)據(jù)的一致性。正因?yàn)镸oebius 中間件宿主在數(shù)據(jù)庫(kù)中的創(chuàng)新,讓中間件不但能知道數(shù)據(jù)的變化,而且知道引起數(shù)據(jù)變化的SQL語(yǔ)句,根據(jù)SQL語(yǔ)句的類(lèi)型智能的采取不同的數(shù)據(jù)同步的策略以保證數(shù)據(jù)同步成本的最小化。

數(shù)據(jù)條數(shù)很少,數(shù)據(jù)內(nèi)容也不大,則直接同步數(shù)據(jù)
數(shù)據(jù)條數(shù)很少,但是里面包含大數(shù)據(jù)類(lèi)型,比如文本,二進(jìn)制數(shù)據(jù)等,則先對(duì)數(shù)據(jù)進(jìn)行壓縮然后再同步,從而減少網(wǎng)絡(luò)帶寬的占用和傳輸所用的時(shí)間。
數(shù)據(jù)條數(shù)很多,此時(shí)中間件會(huì)拿到造成數(shù)據(jù)變化的SQL語(yǔ)句, 然后對(duì)SQL語(yǔ)句進(jìn)行解析,分析其執(zhí)行計(jì)劃和執(zhí)行成本,并選擇是同步數(shù)據(jù)還是同步SQL語(yǔ)句到其他的數(shù)據(jù)庫(kù)中。此種情況應(yīng)用在對(duì)表結(jié)構(gòu)進(jìn)行調(diào)整或者批量更改數(shù)據(jù)的時(shí)候非常有用。

3、優(yōu)缺點(diǎn)
(1) 擴(kuò)展性強(qiáng):當(dāng)系統(tǒng)要更高數(shù)據(jù)庫(kù)處理速度時(shí),只要簡(jiǎn)單地增加數(shù)據(jù)庫(kù)服務(wù)器就 可以得到擴(kuò)展。
(2) 可維護(hù)性:當(dāng)某節(jié)點(diǎn)發(fā)生故障時(shí),系統(tǒng)會(huì)自動(dòng)檢測(cè)故障并轉(zhuǎn)移故障節(jié)點(diǎn)的應(yīng)用,保證數(shù)據(jù)庫(kù)的持續(xù)工作。
(3) 安全性:因?yàn)閿?shù)據(jù)會(huì)同步的多臺(tái)服務(wù)器上,可以實(shí)現(xiàn)數(shù)據(jù)集的冗余,通過(guò)多份數(shù)據(jù)來(lái)保證安全性。另外它成功地將數(shù)據(jù)庫(kù)放到了內(nèi)網(wǎng)之中,更好地保護(hù)了數(shù)據(jù)庫(kù)的安全性。
(4) 易用性:對(duì)應(yīng)用來(lái)說(shuō)完全透明,集群暴露出來(lái)的就是一個(gè)IP

(1) 不能夠按照Web服務(wù)器的處理能力分配負(fù)載。
(2) 負(fù)載均衡器(控制端)故障,會(huì)導(dǎo)致整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)癱瘓。

二、數(shù)據(jù)庫(kù)的讀寫(xiě)分離
1,實(shí)現(xiàn)原理:讀寫(xiě)分離簡(jiǎn)單的說(shuō)是把對(duì)數(shù)據(jù)庫(kù)讀和寫(xiě)的操作分開(kāi)對(duì)應(yīng)不同的數(shù)據(jù)庫(kù)服務(wù)器,這樣能有效地減輕數(shù)據(jù)庫(kù)壓力,也能減輕io壓力。主數(shù)據(jù)庫(kù)提供寫(xiě)操作,從數(shù)據(jù)庫(kù)提供讀操作,其實(shí)在很多系統(tǒng)中,主要是讀的操作。當(dāng)主數(shù)據(jù)庫(kù)進(jìn)行寫(xiě)操作時(shí),數(shù)據(jù)要同步到從的數(shù)據(jù)庫(kù),這樣才能有效保證數(shù)據(jù)庫(kù)完整性。

(ebay的讀寫(xiě)比率是260:1,ebay的讀寫(xiě)分離)

(微軟數(shù)據(jù)庫(kù)分發(fā)) 

2,實(shí)現(xiàn)方法:在MS Sql server中可以使用發(fā)布定義的方式實(shí)現(xiàn)數(shù)據(jù)庫(kù)復(fù)制,實(shí)現(xiàn)讀寫(xiě)分離,復(fù)制是將一組數(shù)據(jù)從一個(gè)數(shù)據(jù)源拷貝到多個(gè)數(shù)據(jù)源的技術(shù),是將一份數(shù)據(jù)發(fā)布到多個(gè)存儲(chǔ)站點(diǎn)上的有效方式。使用復(fù)制技術(shù),用戶可以將一份數(shù)據(jù)發(fā)布到多臺(tái)服務(wù)器上。復(fù)制技術(shù)可以確保分布在不同地點(diǎn)的數(shù)據(jù)自動(dòng)同步更新,從而保證數(shù)據(jù)的一致性。SQL SERVER復(fù)制技術(shù)類(lèi)型有三種,分別是:快照復(fù)制、事務(wù)復(fù)制、合并復(fù)制。SQL SERVER 主要采用出版物、訂閱的方式來(lái)處理復(fù)制。源數(shù)據(jù)所在的服務(wù)器是出版服務(wù)器,負(fù)責(zé)發(fā)表數(shù)據(jù)。出版服務(wù)器把要發(fā)表的數(shù)據(jù)的所有改變情況的拷貝復(fù)制到分發(fā)服務(wù)器,分發(fā)服務(wù)器包含有一個(gè)分發(fā)數(shù)據(jù)庫(kù),可接收數(shù)據(jù)的所有改變,并保存這些改變,再把這些改變分發(fā)給訂閱服務(wù)器。

3,優(yōu)缺點(diǎn)
(1)數(shù)據(jù)的實(shí)時(shí)性差:數(shù)據(jù)不是實(shí)時(shí)同步到自讀服務(wù)器上的,當(dāng)數(shù)據(jù)寫(xiě)入主服務(wù)器后,要在下次同步后才能查詢到。

(2)數(shù)據(jù)量大時(shí)同步效率差:?jiǎn)伪頂?shù)據(jù)量過(guò)大時(shí)插入和更新因索引,磁盤(pán)IO等問(wèn)題,性能會(huì)變的很差。

(3)同時(shí)連接多個(gè)(至少兩個(gè))數(shù)據(jù)庫(kù):至少要連接到兩個(gè)數(shù)據(jù)數(shù)據(jù)庫(kù),實(shí)際的讀寫(xiě)操作是在程序代碼中完成的,容易引起混亂

(4)讀具有高性能高可靠性和可伸縮:只讀服務(wù)器,因?yàn)闆](méi)有寫(xiě)操作,會(huì)大大減輕磁盤(pán)IO等性能問(wèn)題,大大提高效率;只讀服務(wù)器可以采用負(fù)載均衡,主數(shù)據(jù)庫(kù)發(fā)布到多個(gè)只讀服務(wù)器上實(shí)現(xiàn)讀操作的可伸縮性。

三、數(shù)據(jù)庫(kù)/數(shù)據(jù)表  拆分(分布式) 

通過(guò)某種特定的條件,將存放在同一個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)分散存放到多個(gè)數(shù)據(jù)庫(kù)上,實(shí)現(xiàn)分布存儲(chǔ),通過(guò)路由規(guī)則路由訪問(wèn)特定的數(shù)據(jù)庫(kù),這樣一來(lái)每次訪問(wèn)面對(duì)的就不是單臺(tái)服務(wù)器了,而是N臺(tái)服務(wù)器,這樣就可以降低單臺(tái)機(jī)器的負(fù)載壓力。提示:sqlserver 2005版本之后,可以友好的支持“表分區(qū)”。

垂直(縱向)拆分:是指按功能模塊拆分,比如分為訂單庫(kù)、商品庫(kù)、用戶庫(kù)...這種方式多個(gè)數(shù)據(jù)庫(kù)之間的表結(jié)構(gòu)不同。

水平(橫向)拆分:將同一個(gè)表的數(shù)據(jù)進(jìn)行分塊保存到不同的數(shù)據(jù)庫(kù)中,這些數(shù)據(jù)庫(kù)中的表結(jié)構(gòu)完全相同。

(縱向拆分)

(橫向拆分)

1,實(shí)現(xiàn)原理:使用垂直拆分,主要要看應(yīng)用類(lèi)型是否合適這種拆分方式,如系統(tǒng)可以分為,訂單系統(tǒng),商品管理系統(tǒng),用戶管理系統(tǒng)業(yè)務(wù)系統(tǒng)比較明的,垂直拆分能很好的起到分散數(shù)據(jù)庫(kù)壓力的作用。業(yè)務(wù)模塊不明晰,耦合(表關(guān)聯(lián))度比較高的系統(tǒng)不適合使用這種拆分方式。但是垂直拆分方式并不能徹底解決所有壓力問(wèn)題,例如 有一個(gè)5000w的訂單表,操作起來(lái)訂單庫(kù)的壓力仍然很大,如我們需要在這個(gè)表中增加(insert)一條新的數(shù)據(jù),insert完畢后,數(shù)據(jù)庫(kù)會(huì)針對(duì)這張表重新建立索引,5000w行數(shù)據(jù)建立索引的系統(tǒng)開(kāi)銷(xiāo)還是不容忽視的,反過(guò)來(lái),假如我們將這個(gè)表分成100個(gè)table呢,從table_001一直到table_100,5000w行數(shù)據(jù)平均下來(lái),每個(gè)子表里邊就只有50萬(wàn)行數(shù)據(jù),這時(shí)候我們向一張只有50w行數(shù)據(jù)的table中insert數(shù)據(jù)后建立索引的時(shí)間就會(huì)呈數(shù)量級(jí)的下降,極大了提高了DB的運(yùn)行時(shí)效率,提高了DB的并發(fā)量,這種拆分就是橫向拆分

2,實(shí)現(xiàn)方法:垂直拆分,拆分方式實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單,根據(jù)表名訪問(wèn)不同的數(shù)據(jù)庫(kù)就可以了。橫向拆分的規(guī)則很多,這里總結(jié)前人的幾點(diǎn),

(1)順序拆分:如可以按訂單的日前按年份才分,2003年的放在db1中,2004年的db2,以此類(lèi)推。當(dāng)然也可以按主鍵標(biāo)準(zhǔn)拆分。

優(yōu)點(diǎn):可部分遷移

缺點(diǎn):數(shù)據(jù)分布不均,可能2003年的訂單有100W,2008年的有500W。

(2)hash取模分: 對(duì)user_id進(jìn)行hash(或者如果user_id是數(shù)值型的話直接使用user_id的值也可),然后用一個(gè)特定的數(shù)字,比如應(yīng)用中需要將一個(gè)數(shù)據(jù)庫(kù)切分成4個(gè)數(shù)據(jù)庫(kù)的話,我們就用4這個(gè)數(shù)字對(duì)user_id的hash值進(jìn)行取模運(yùn)算,也就是user_id%4,這樣的話每次運(yùn)算就有四種可能:結(jié)果為1的時(shí)候?qū)?yīng)DB1;結(jié)果為2的時(shí)候?qū)?yīng)DB2;結(jié)果為3的時(shí)候?qū)?yīng)DB3;結(jié)果為0的時(shí)候?qū)?yīng)DB4,這樣一來(lái)就非常均勻的將數(shù)據(jù)分配到4個(gè)DB中。

優(yōu)點(diǎn):數(shù)據(jù)分布均勻
缺點(diǎn):數(shù)據(jù)遷移的時(shí)候麻煩;不能按照機(jī)器性能分?jǐn)倲?shù)據(jù) 。

(3)在認(rèn)證庫(kù)中保存數(shù)據(jù)庫(kù)配置
就是建立一個(gè)DB,這個(gè)DB單獨(dú)保存user_id到DB的映射關(guān)系,每次訪問(wèn)數(shù)據(jù)庫(kù)的時(shí)候都要先查詢一次這個(gè)數(shù)據(jù)庫(kù),以得到具體的DB信息,然后才能進(jìn)行我們需要的查詢操作。
優(yōu)點(diǎn):靈活性強(qiáng),一對(duì)一關(guān)系
缺點(diǎn):每次查詢之前都要多一次查詢,會(huì)造成一定的性能損失。

您可能感興趣的文章:
  • SQLserver安裝時(shí)要求CDKEY的解決辦法
  • SQL SERVER 2008 無(wú)法附加數(shù)據(jù)庫(kù)的解決方法
  • Sql Server安裝出錯(cuò),安裝程序配置服務(wù)器失敗的解決方法小結(jié)
  • 使用SQL Server 2008遠(yuǎn)程鏈接時(shí)SQL數(shù)據(jù)庫(kù)不成功的解決方法
  • 安裝sql server 2008時(shí)的4個(gè)常見(jiàn)錯(cuò)誤和解決方法
  • 圖解mysql數(shù)據(jù)庫(kù)的安裝
  • SQL Server安裝完成后3個(gè)需要立即修改的配置選項(xiàng)
  • SQL Server數(shù)據(jù)庫(kù)安裝時(shí)常見(jiàn)問(wèn)題解決方案集錦

標(biāo)簽:營(yíng)口 湘潭 周口 寧夏 預(yù)約服務(wù) 河源 欽州 鄂爾多斯

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《sqlserver數(shù)據(jù)庫(kù)大型應(yīng)用解決方案經(jīng)驗(yàn)總結(jié)》,本文關(guān)鍵詞  sqlserver,數(shù)據(jù)庫(kù),大型,應(yīng)用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《sqlserver數(shù)據(jù)庫(kù)大型應(yīng)用解決方案經(jīng)驗(yàn)總結(jié)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于sqlserver數(shù)據(jù)庫(kù)大型應(yīng)用解決方案經(jīng)驗(yàn)總結(jié)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 大城县| 文登市| 青州市| 长汀县| 稷山县| 化州市| 博爱县| 新建县| 蛟河市| 吴忠市| 黑河市| 石景山区| 白河县| 大竹县| 光泽县| 崇仁县| 金平| 渑池县| 宜君县| 凯里市| 潼关县| 扬中市| 永康市| 江津市| 漾濞| 西畴县| 资阳市| 洛南县| 淮北市| 永丰县| 新乐市| 黄龙县| 赣州市| 新巴尔虎左旗| 双柏县| 黎城县| 沈丘县| 阳西县| 和林格尔县| 常州市| 靖江市|