亚洲AV无码乱码在线观看不卡|最新大伊香蕉精品视频在线|亚洲不卡av一区二区|国产美女无遮挡免费

登錄論壇 | 注冊會員 設(shè)為首頁 | 收藏本站
當前位置 : 首頁>軟件學院>數(shù)據(jù)庫>MYSQL>正文
 
分區(qū)和負載均衡讓MySQL更大更好

http://www.yibo1263.com 2011/2/8 9:03:48  來源:東北IT網(wǎng)  編輯:葉子
 
  通常,當我們的MySQL數(shù)據(jù)庫逐漸變慢時,我們就希望通過一切努力使它變得更快、更強、更大、更好!那么都有哪些方法呢?別著急,我會一個一個給大家介紹如何才能實現(xiàn)這些美好的愿望。閱讀本系列文章將有助于擴大你的視野,更好地規(guī)劃你將來的需要,本系列的第一篇文章“更快,更強的MySQL”討論了查詢優(yōu)化和硬件調(diào)整,包括增加額外的服務器和應用程序變更,本文將介紹如何通過分區(qū)和負載均衡解決方案讓你的MySQL變得更大更好。

  更大的MySQL

  增加更多的MySQL實例是提高應用程序響應速度的有效方法,如果你的服務器有多顆CPU,充足的內(nèi)存和快速的硬盤,這些資源有相當一部分處于閑置狀態(tài),那么在這種情況下,在服務器上可以同時運行多個MySQL實例,因為MySQL默認情況下只有一個進程和多個會話線程,因此它真正能利用的最大硬件資源是有限的。

  如果你的服務器已經(jīng)快飽和了,那么必須增加服務器,不管你的多個MySQL實例是在一臺服務器上,還是在多臺服務器上,你都需要為應用程序配置一個方法讓它知道該將查詢發(fā)送給哪臺服務器,如果是要修改數(shù)據(jù),那就應該將指令發(fā)送到主數(shù)據(jù)庫實例,如果僅僅是查詢操作,那么隨便發(fā)給任何一個從數(shù)據(jù)庫實例即可。

  1、數(shù)據(jù)分區(qū)和水平分區(qū)

  因為許多Web應用程序是通過會話來識別用戶的,通過會話將它們分配到不同的從數(shù)據(jù)庫實例顯得很有道理。例如A-G,H-O,P-Z數(shù)據(jù)庫實例可能在工作,這時可以通過用戶名的哈希值,或userid將用戶分配到不同的服務器上,這就是所謂的分區(qū)鍵,選擇分區(qū)鍵時需要慎重決定,因為它會影響到你如何構(gòu)建從數(shù)據(jù)庫實例,主要是考慮如何讓這些服務器平均承擔工作負載,如果選擇得不好,假設(shè)從數(shù)據(jù)庫倒掉,也可能會引起數(shù)據(jù)中斷。

  如果正采用這種分區(qū),你需要決定程序運行時使用哪個數(shù)據(jù)庫,這可以通過一個中間層如MySQL代理來實現(xiàn),雖然它還處于Alpha階段,但它的思想很好,并且已經(jīng)有很多人將其用于生產(chǎn)環(huán)境,它運行在服務器上,響應端口3306上的請求,然后將這些查詢通過高速語言如lua實現(xiàn)的某些邏輯轉(zhuǎn)發(fā)給后端適當?shù)姆⻊掌鳌?

  其次你也可以在應用程序中指定將查詢發(fā)到哪些服務器,這也是最靈活的方法,你可以完全控制整個決策過程,你也可以使用master_pos_wait檢查從數(shù)據(jù)庫實例,看看它們是否有足夠的計算資源。還有你使用的編程語言或Web框架可能也會提供這方面的支持,如果你還不清楚,可以查詢它們的文檔。

  你還可以研究一下Continuent Tungsten,DBIx::DBCluster for Perl以及SQLRelay,它們支持許多不同的編程語言和數(shù)據(jù)庫。同樣,CMS如Drupal也支持多種只讀的從數(shù)據(jù)庫,你只需要啟用這個功能即可。

  使用這種架構(gòu)需要考慮的另一個事情是,是否要使用主數(shù)據(jù)庫實例,以及何時使用,一般說來,所有插入,更新和刪除操作都應放在主數(shù)據(jù)庫實例上完成,所有的查詢操作都放在從數(shù)據(jù)庫實例上完成。例如,如果某個用戶對博客文章發(fā)表了注釋,此時如果直接使用從數(shù)據(jù)庫,可能無法完成,因為MySQL復制架構(gòu)會存在滯后,此時從數(shù)據(jù)庫中可能還沒有那篇博文。

  檢查過時數(shù)據(jù)是一個更好的方法,如果你有報告查詢在夜間運行,這種方法可能工作得很好,你只需要確保復制趕得上進度即可。

  另一個方法是通過版本號跟蹤數(shù)據(jù)庫變更,在讀取數(shù)據(jù)之前確定數(shù)據(jù)是否是最新的版本。

  最后,MySQL提供了一個函數(shù)master_pos_wait,它可以確定從數(shù)據(jù)庫更新到哪個時間點了。

  2、功能分區(qū)

  你可能已經(jīng)使用到功能分區(qū),使用功能分區(qū)時,需要創(chuàng)建一個生產(chǎn)數(shù)據(jù)庫的副本用于不同目的,如其中一個用于數(shù)據(jù)倉庫和報告,另一個用于文本搜索等。

  通過負載均衡使MySQL變得更好

  如果你的從數(shù)據(jù)庫已經(jīng)有些只讀數(shù)據(jù),你可能需要實現(xiàn)負載均衡,將流量平均分配到各個從數(shù)據(jù)庫,實現(xiàn)方法有多種,如隨機分配,最少連接法,響應速度最快法,或某種加權(quán)平均法,雖然某些硬件負載均衡設(shè)備可以提供負載均衡功能,但它們往往是設(shè)計用于均衡網(wǎng)絡(luò)流量,并沒有提供數(shù)據(jù)庫相關(guān)的均衡功能。

  幸運的是有很多軟件解決方案,LVS項目就是一個不錯的候選,它已經(jīng)發(fā)展得相當成熟穩(wěn)定,它提供了類似DNS輪詢的負載均衡算法,但是在IP層實現(xiàn)的,速度非常快。此外,也有很多項目是建立在LVS基礎(chǔ)之上的,包括wackamole,它是基于對等網(wǎng)絡(luò)的,因此不會發(fā)生單點故障,還有一個值得推薦的項目是ultramonkey。

本新聞共2頁,當前在第1頁  1  2  

收藏】【打印】【進入論壇
  相關(guān)文章:

·MySQL CEO加入基準基金公司
·MySQL創(chuàng)始人聯(lián)合14000人反對甲骨文收購Sun
·MySQL創(chuàng)始人呼吁用戶反對甲骨文收購Sun
·MySQL數(shù)據(jù)庫雙機熱備的配置方法
·忘記MySQL密碼怎么樣解決
·解決MySQL數(shù)據(jù)庫死掉以及拒絕服務的方法
·MySQL數(shù)據(jù)庫可靠性方案的分析和比較
·MySQL根用戶root密碼忘記后的處理方法
·用Flash+PHP+MYSQL制作簡單留言本 
·如何徹底刪除MYSQL?
·講解MySQL的數(shù)據(jù)類型和建庫策略

 
 
 
最新文章

搶先蘋果,消息稱英特爾芯片采用臺積電
三星揭曉業(yè)內(nèi)首款單條 512GB DDR5 內(nèi)存
vivo 高端新機爆料:120Hz 曲面屏 + 天
vivo Y21 在印度正式上市:Helio P35 芯
微星推出 GeForce RTX 3080 Sea Hawk X
消息稱三星 Galaxy Tab S8 系列平板將放
機械革命推出 F6 輕薄本:16 英寸全面屏
英特爾 12 代 Alder Lake CPU 600 系列
雷軍:向小米手機 1 首批用戶每人贈送價
小米李明談用戶被踢出 MIUI 測試版:大

推薦文章
1
2
3
4
5
6
7
8
9
10
叛逆嫩模性感寫真
宮如敏不雅照瘋傳 看張馨予韓一菲獸獸誰
不懼孔子搶位 阿凡達游戲影音配置推薦
2015第十七屆“東北安博會”火爆招商
第十六屆東北國際公共安全防范產(chǎn)品博覽
2016年第五屆中國國際商業(yè)信息化博覽會
2016年第五屆中國國際POS機及相關(guān)設(shè)備展
互聯(lián)網(wǎng)電視熟了嗎 2013最火電視深解析
桑達獲邀出席2015中國(廣州)國際POS機
寶獲利報名參加“2015年度中國POS機行業(yè)
八卦圖解 More>>
叛逆嫩模性感寫真 宮如敏不雅照瘋傳 看張馨予韓一菲
周偉童魔鬼身材日本性感寫真圖  聯(lián)想V360筆記本模特寫真