日期:2014-05-16  浏览次数:21324 次

MySQL鏁版嵁搴撴按骞冲垏鍒嗙殑瀹炵幇鍘熺悊瑙f瀽(杞?

MySQL鏁版嵁搴撴按骞冲垏鍒嗙殑瀹炵幇鍘熺悊瑙f瀽(杞?

闅忕潃浜掕仈缃戝簲鐢ㄧ殑骞挎硾鏅強锛屾捣閲忔暟鎹殑瀛樺偍鍜岃闂垚涓轰簡绯荤粺璁捐鐨勭摱棰堥棶棰樸€傚浜庝竴涓ぇ 鍨嬬殑浜掕仈缃戝簲鐢紝姣忓ぉ鍑犲崄浜跨殑PV鏃犵枒瀵规暟鎹簱閫犳垚浜嗙浉褰撻珮鐨勮礋杞姐€傚浜庣郴缁熺殑绋冲畾鎬у拰鎵╁睍鎬ч€犳垚浜嗘瀬澶х殑闂銆傞€氳繃鏁版嵁鍒囧垎鏉ユ彁楂樼綉绔欐€ц兘锛屾í鍚戞墿灞曟暟 鎹眰宸茬粡鎴愪负鏋舵瀯鐮斿彂浜哄憳棣栭€夌殑鏂瑰紡銆傛按骞冲垏鍒嗘暟鎹簱锛屽彲浠ラ檷浣庡崟鍙版満鍣ㄧ殑璐熻浇锛屽悓鏃舵渶澶ч檺搴︾殑闄嶄綆浜嗕簡瀹曟満閫犳垚鐨勬崯澶便€傞€氳繃璐熻浇鍧囪 绛栫暐锛屾湁鏁堢殑闄嶄綆浜?鍗曞彴鏈哄櫒鐨勮闂礋杞斤紝闄嶄綆浜嗗畷鏈虹殑鍙兘鎬э紱閫氳繃闆嗙兢鏂规锛岃В鍐充簡鏁版嵁搴撳畷鏈哄甫鏉ョ殑鍗曠偣鏁版嵁搴撲笉鑳借闂殑闂锛涢€氳繃璇诲啓鍒嗙绛栫暐鏇存槸鏈€澶ч檺搴︿簡鎻愰珮浜嗗簲鐢ㄤ腑 璇诲彇锛圧ead锛夋暟鎹殑閫熷害鍜屽苟鍙戦噺銆傜洰鍓嶅浗鍐呯殑澶у瀷浜掕仈缃戝簲鐢ㄤ腑锛屽ぇ閲忕殑閲囩敤浜嗚繖鏍风殑鏁版嵁鍒囧垎鏂规锛孴aobao,Alibaba,Tencent锛屽畠 浠ぇ閮藉疄鐜颁簡鑷繁鐨勫垎甯冨紡鏁版嵁璁块棶灞傦紙DDAL锛夈€備互瀹炵幇鏂瑰紡鍜屽疄鐜扮殑灞傛鏉ュ垝鍒嗭紝澶ф鍒嗕负涓や釜灞傛锛圝ava搴旂敤涓轰緥锛夛細JDBC灞傜殑灏佽锛孫RM妗嗘灦 灞傜殑瀹炵幇銆傚氨JDBC灞傜殑鐩存帴灏佽鑰岃█锛岀幇鍦ㄥ浗鍐呭彂灞曡緝濂界殑涓€涓」鐩槸琚О浣溾€滃彉褰㈣櫕鈥?Amoeba)鐨勯」鐩紝鐢遍樋閲岄泦鍥㈢殑鐮旂┒闄㈠紑鍙戯紝鐜板湪浠嶇劧澶勪簬娴?璇曢樁娈碉紙beta鐗堬級锛屽叾杩愯鏁堢巼鍜岀敓浜ф椂鏁堟€ф湁寰呰€冪┒銆傚氨ORM妗嗘灦灞傜殑瀹炵幇鑰岃█锛屾瘮濡俆aobao鐨勫熀浜巌batis鍜孲pring鐨勭殑鍒嗗竷寮忔暟鎹 闂眰锛屽凡鏈夊骞寸殑搴旂敤锛岃繍琛屾晥鐜囧拰鐢熶骇瀹炴晥鎬у緱鍒颁簡寮€鍙戜汉鍛樺拰鐢ㄦ埛鐨勮偗瀹氥€傛湰鏂囧氨鏄互ORM妗嗘灦灞備负鍩虹鑰屽疄鐜扮殑鍒嗗竷寮忔暟鎹闂眰銆傛湰璇鹃鐨勯毦鐐瑰湪浜庡垎搴?鍚庯紝璺敱瑙勫垯鐨勫埗瀹氬拰閫夋嫨浠ュ強鍚庢湡鐨勬墿灞曟€э紝姣斿锛氬浣曞仛鍒扮敤鏈€灏戠殑鏁版嵁杩佺Щ閲忥紝杈惧埌鎵╁厖鏁版嵁搴撳閲忥紙澧炲姞鏈哄櫒鑺傜偣锛夌殑鐩殑銆傛牳蹇冮棶棰樺皢鍥寸粫鏁版嵁搴撳垎搴撳垎 琛ㄧ殑璺敱瑙勫垯鍜岃礋杞藉潎琛$瓥鐣ュ睍寮€銆?



绗?绔?鍩烘湰鍘熺悊鍜屾蹇?/div>



2.1鍩烘湰鍘熺悊锛?

浜虹被璁ょ煡闂鐨勮繃绋嬫€绘槸杩欐牱鐨勶細what锛堜粈涔堬級-飪爓hy(涓轰粈涔?-飪爃ow(鎬庝箞
鍋?锛屾帴涓嬫潵锛屾湰鏂囧皢灏辫繖涓変釜闂灞曞紑璁ㄨ鍜岀爺绌讹細

2.1.1浠€涔堟槸鏁版嵁鍒囧垎

"Shard" 杩欎釜璇嶈嫳鏂囩殑鎰忔€濇槸"纰庣墖"锛岃€屼綔涓烘暟鎹簱鐩稿叧鐨勬妧鏈敤璇紝浼间箮鏈€鏃╄浜庡ぇ鍨嬪浜哄湪绾胯鑹叉壆婕旀父鎴忎腑銆?Sharding" 濮戜笖绉颁箣涓?鍒嗙墖"銆係harding 涓嶆槸涓€闂ㄦ柊鎶€鏈紝鑰屾槸涓€涓浉瀵圭畝鏈寸殑杞欢鐞嗗康銆備紬鎵€鍛ㄧ煡锛孧ySQL 5 涔嬪悗鎵嶆湁浜嗘暟鎹〃鍒嗗尯鍔熻兘锛岄偅涔堝湪姝や箣鍓嶏紝寰堝 MySQL 鐨勬綔鍦ㄧ敤鎴烽兘瀵?MySQL 鐨勬墿灞曟€ф湁鎵€椤捐檻锛岃€屾槸鍚﹀叿澶囧垎鍖哄姛鑳藉氨鎴愪簡琛¢噺涓€涓暟鎹簱鍙墿灞曟€т笌鍚︾殑涓€涓叧閿寚鏍?褰撶劧涓嶆槸鍞竴鎸囨爣)銆傛暟鎹簱鎵╁睍鎬ф槸涓€涓案鎭掔殑璇濋锛孧ySQL 鐨勬帹骞胯€呯粡甯镐細琚棶鍒帮細濡傚湪鍗曚竴鏁版嵁搴撲笂澶勭悊搴旂敤鏁版嵁鎹夎瑙佽倶鑰岄渶瑕佽繘琛屽垎鍖哄寲涔嬬被鐨勫鐞嗭紝鏄浣曞姙鍒扮殑鍛? 绛旀鏄細Sharding銆偮?Sharding 涓嶆槸涓€涓煇涓壒瀹氭暟鎹簱杞欢闄勫睘鐨勫姛鑳斤紝鑰屾槸鍦ㄥ叿浣撴妧鏈粏鑺備箣涓婄殑鎶借薄澶勭悊锛屾槸姘村钩鎵╁睍(Scale Out锛屼害鎴栨í鍚戞墿灞曘€佸悜澶栨墿灞?鐨勮В鍐虫柟妗堬紝鍏朵富瑕佺洰鐨勬槸涓虹獊鐮村崟鑺傜偣鏁版嵁搴撴湇鍔″櫒鐨?I/O 鑳藉姏闄愬埗锛岃В鍐虫暟鎹簱鎵╁睍鎬ч棶棰樸€?
閫氳繃涓€绯诲垪 鐨勫垏鍒嗚鍒欏皢鏁版嵁姘村钩鍒嗗竷鍒颁笉鍚岀殑DB鎴杢able涓紝鍦ㄩ€氳繃鐩稿簲鐨凞B璺敱鎴栬€卼able璺敱瑙勫垯鎵惧埌闇€瑕佹煡璇㈢殑鍏蜂綋鐨凞B鎴栬€卼able锛屼互杩涜 Query鎿嶄綔銆傝繖閲屾墍璇寸殑鈥渟harding鈥濋€氬父鏄寚鈥滄按骞冲垏鍒嗏€濓紝杩欎篃鏄湰鏂囪璁虹殑閲嶇偣銆傚叿浣撳皢鏈変粈涔堟牱鐨勫垏鍒嗘柟寮忓憿鍜岃矾鐢辨柟寮忓憿锛熻鏂囪嚦姝わ紝璇昏€?闅惧厤鏈夋墍鐤戦棶锛屾帴涓嬫潵涓句釜绠€鍗曠殑渚嬪瓙锛氭垜浠拡瀵逛竴涓狟log搴旂敤涓殑鏃ュ織鏉ヨ鏄庯紝 姣斿鏃ュ織鏂囩珷锛坅rticle锛夎〃鏈夊涓嬪瓧娈碉細聽



闈?瀵硅繖鏍风殑涓€涓〃锛屾垜浠€庢牱鍒囧垎鍛紵鎬庢牱灏嗚繖鏍风殑鏁版嵁鍒嗗竷鍒颁笉鍚岀殑鏁版嵁搴撲腑鐨勮〃涓幓鍛紵鍏跺疄鍒嗘瀽blog鐨勫簲鐢紝鎴戜滑涓嶉毦寰楀嚭杩欐牱鐨勭粨璁猴細blog鐨勫簲鐢?涓紝鐢ㄦ埛鍒嗕负涓ょ锛氭祻瑙堣€呭拰blog鐨勪富浜恒€傛祻瑙堣€呮祻瑙堟煇涓猙log锛屽疄闄呬笂鏄湪涓€涓壒瀹氱殑鐢ㄦ埛鐨刡log涓嬭繘琛屾祻瑙堢殑锛岃€宐log鐨勪富浜虹鐞嗚嚜宸辩殑 blog锛屼篃鍚屾牱鏄湪鐗瑰畾鐨勭敤鎴穊log涓嬭繘琛屾搷浣滅殑锛堝湪鑷繁鐨勭┖闂翠笅锛夈€傛墍璋撶殑鐗瑰畾鐨勭敤鎴凤紝鐢ㄦ暟鎹簱鐨勫瓧娈佃〃绀哄氨鏄€渦ser_id鈥濄€傚氨鏄繖涓?鈥渦ser_id鈥濓紝瀹冨氨鏄垜浠渶瑕佺殑鍒嗗簱鐨勪緷鎹拰瑙勫垯鐨勫熀纭€銆傛垜浠彲浠ヨ繖鏍峰仛锛屽皢user_id涓?锝?0000鐨勬墍鏈夌殑鏂囩珷淇℃伅鏀惧叆DB1涓殑 article琛ㄤ腑锛屽皢user_id涓?0001锝?0000鐨勬墍鏈夋枃绔犱俊鎭斁鍏B2涓殑article琛ㄤ腑锛屼互姝ょ被鎺紝涓€鐩村埌DBn銆傝繖鏍蜂竴鏉ワ紝鏂?绔犳暟鎹氨寰堣嚜鐒剁殑琚垎鍒颁簡鍚勪釜鏁版嵁搴撲腑锛岃揪鍒颁簡鏁版嵁鍒囧垎鐨勭洰鐨勩€傛帴涓嬫潵瑕佽В鍐崇殑闂灏辨槸鎬庢牱鎵惧埌鍏蜂綋鐨勬暟鎹簱鍛紵鍏跺疄闂涔熸槸绠€鍗曟槑鏄剧殑锛屾棦鐒跺垎搴撶殑鏃跺€?鎴戜滑鐢ㄥ埌浜嗗尯鍒嗗瓧娈祏ser_id锛岄偅涔堝緢鑷劧锛屾暟鎹簱璺敱鐨勮繃绋嬪綋鐒惰繕鏄皯涓嶄簡user_id鐨勩€傝€冭檻涓€涓嬫垜浠垰鎵嶅憟鐜扮殑blog搴旂敤锛屼笉绠℃槸璁块棶鍒汉 鐨刡log杩樻槸绠$悊鑷繁鐨刡log锛屾€讳箣鎴戦兘瑕佺煡閬撹繖涓猙log鐨勭敤鎴锋槸璋佸惂锛屼篃灏辨槸鎴戜滑鐭ラ亾浜嗚繖涓猙log鐨剈ser_id锛屽氨鍒╃敤杩欎釜 user_id锛屽埄鐢ㄥ垎搴撴椂鍊欑殑瑙勫垯锛屽弽杩囨潵瀹氫綅鍏蜂綋鐨勬暟鎹簱锛屾瘮濡倁ser_id鏄?34锛屽埄鐢ㄨ鎵嶇殑瑙勫垯锛屽氨搴旇瀹氫綅鍒癉B1锛屽亣濡倁ser_id鏄?12343锛屽埄鐢ㄨ鎵嶇殑瑙勫垯锛屽氨搴旇瀹氫綅鍒癉B2銆備互姝ょ被鎺紝鍒╃敤鍒嗗簱鐨勮鍒欙紝鍙嶅悜鐨勮矾鐢卞埌鍏蜂綋鐨凞B锛岃繖涓繃绋嬫垜浠О涔嬩负鈥淒B璺敱鈥濄€?
褰撶劧鑰冭檻鍒版暟鎹垏鍒嗙殑DB璁捐蹇呯劧鏄潪甯歌锛屼笉姝g粺鐨凞B璁捐銆傞偅涔堜粈涔堟牱鐨凞B璁捐鏄缁熺殑DB璁捐鍛紵
鎴?浠钩甯歌瑙勭煩鐭╃敤鐨勫熀鏈兘鏄€傚钩甯告垜浠細鑷鐨勬寜鐓ц寖寮忔潵璁捐鎴戜滑鐨勬暟鎹簱锛岃礋杞介珮鐐瑰彲鑳借€冭檻浣跨敤鐩稿叧鐨凴eplication鏈哄埗鏉ユ彁楂樿鍐欑殑鍚炲悙鍜屾€?鑳斤紝杩欏彲鑳藉凡缁忓彲浠ユ弧瓒冲緢澶氶渶姹傦紝浣嗚繖濂楁満鍒惰嚜韬殑缂洪櫡杩樻槸姣旇緝鏄捐€屾槗瑙佺殑锛堜笅鏂囦細鎻愬強锛夈€備笂闈㈡彁鍒扮殑鈥滆嚜瑙夌殑鎸夌収鑼冨紡璁捐鈥濄€傝€冭檻鍒版暟鎹垏鍒嗙殑DB璁?璁★紝灏嗚繚鑳岃繖涓€氬父鐨勮鐭╁拰绾︽潫锛屼负浜嗗垏鍒嗭紝鎴戜滑涓嶅緱涓嶅湪鏁版嵁搴撶殑琛ㄤ腑鍑虹幇鍐椾綑瀛楁锛岀敤浣滃尯鍒嗗瓧娈垫垨鑰呭彨鍋氬垎搴撶殑鏍囪瀛楁锛屾瘮濡備笂闈㈢殑article鐨勪緥 瀛愪腑鐨剈ser_id杩欐牱鐨勫瓧娈碉紙褰撶劧锛屽垰鎵嶇殑渚嬪瓙骞舵病鏈夊緢濂界殑浣撶幇鍑簎ser_id鐨勫啑浣欐€э紝鍥犱负user_id杩欎釜瀛楁鍗充娇灏辨槸涓嶅垎搴擄紝涔熸槸瑕佸嚭鐜?鐨勶紝绠楁槸鎴戜滑鎹′簡渚垮疁鍚э級銆傚綋鐒跺啑浣欏瓧娈电殑鍑虹幇骞朵笉鍙槸鍦ㄥ垎搴撶殑鍦烘櫙涓嬫墠鍑虹幇鐨勶紝鍦ㄥ緢