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