1.姒傚康浜嬪姟涓€鑸槸鎸囦竴缁勯€昏緫鎿嶄綔锛屾垨鑰呬綔涓轰竴涓€昏緫鍗曞厓鎵ц鐨勪竴绯诲垪鎿嶄綔銆備竴涓簨鍔′腑鐨勬墍鏈夋搷浣滈兘浼氳灏佽鎴愪竴涓笉鍙垎鍓茬殑鎵ц鍗曞厓锛岃繖涓崟鍏冪殑鎵€鏈夋搷浣滆涔堝叏閮ㄦ墽琛屾垚鍔燂紝瑕佷箞鍏ㄩ儴鎵ц澶辫触銆傚彧瑕佷换浣曚竴涓搷浣滄墽琛屽け璐ワ紝鏁翠釜浜嬪姟灏变細鎵ц鍥炴粴鎿嶄綔銆?.浜嬪姟鐨勭壒鎬у拰绫诲瀷浠嬬粛2.1浜嬪姟鐨勭壒鎬у師瀛愭€э紙atomicity锛変簨鍔$殑鍘熷瓙鎬ф槸鎸囨瀯鎴愪簨鍔$殑鎵€鏈夋搷浣滆涔堟墽琛屾垚鍔熻涔堝け璐ャ€備竴鑷存€э紙consistency锛変簨鍔$殑涓€鑷存€ф槸鎸囨暟鎹湪浜嬪姟鎵ц鍓嶅悗濮嬬粓澶勪簬涓€鑷寸殑鐘舵€併€傞殧绂伙紙isolation锛変簨鍔$殑闅旂鏄寚涓や釜骞跺彂鐨勪簨鍔′簰涓嶅共鎵帮紝涔熷氨鏄锛屽湪涓€涓簨鍔$殑鎵ц杩囩▼涓紝涓嶅彲鑳界湅鍒板叾浠栦簨鍔$殑涓棿鐘舵€併€傪煈ㄢ€嶆敞鎰忥細MySQL閫氳繃鍔犻攣鐨凪VCC鏈哄埗鏉ヤ繚璇佷簨鍔¢殧绂汇€傛寔涔呮€э紙鎸佺画鏃堕棿锛変簨鍔$殑鎸佷箙鎬ф槸鎸囦竴鏃︿簨鍔¤鎻愪氦锛屼簨鍔$殑鏁版嵁鍙樺寲灏嗚鎸佷箙鍖栧湪鏁版嵁搴撲腑锛屼笉浼氬洖婊氥€?.2涓ょ被浜嬪姟浠嬬粛鏈湴浜嬪姟鍒嗗竷寮忎簨鍔℃湰鍦颁簨鍔¢€氬父鏄熀浜庡叧绯绘暟鎹簱鐨勬帶鍒朵簨鍔★紝鍙互绉颁负浼犵粺浜嬪姟鎴栨湰鍦颁簨鍔°€傛湰鍦颁簨鍔$殑鎵ц杩囩▼瀹㈡埛绔湪寮€濮嬩簨鍔℃搷浣滀箣鍓嶏紝闇€瑕佸紑鍚竴涓繛鎺ヤ細璇濓紱鍚姩浼氳瘽鍚庯紝瀹㈡埛绔彂璧峰惎鍔ㄤ簨鍔$殑鍛戒护锛涗簨鍔″紑濮嬪悗锛屽鎴风鍙戦€佸悇绉峉QL璇彞澶勭悊鏁版嵁锛涙甯告儏鍐典笅锛屽鎴风浼氬彂璧锋彁浜や簨鍔$殑鍛戒护銆傚鏋滃嚭鐜板紓甯告儏鍐碉紝瀹㈡埛绔細鍙戣捣鍥炴粴浜嬪姟鍛戒护锛涗笂杩拌繃绋嬪畬鎴愬悗锛屼細璇濆皢鍏抽棴銆傗湐鏈湴浜嬪姟鐢辫祫婧愮鐞嗗櫒鍦ㄦ湰鍦扮鐞嗐€傛湰鍦颁簨鍔$殑缂虹偣鏄笉鍏峰澶勭悊鍒嗗竷寮忎簨鍔$殑鑳藉姏銆備竴涓簨鍔¤繘绋嬪彧鑳借繛鎺ヤ竴涓敮鎸佷簨鍔$殑鏁版嵁搴擄紝涓嶈兘鐢ㄤ簬澶氫釜浜嬪姟鏁版嵁搴撱€?銆佸苟鍙戜簨鍔′細甯︽潵鍝簺闂锛熸洿鏂颁涪澶憋紙鑴忓啓锛夊綋涓や釜鎴栧涓簨鍔″悓鏃跺鍚屼竴琛屾暟鎹繘琛屾搷浣滐紝骞惰祴浜堟渶鍒濋€夋嫨鐨勫€兼洿鏂拌琛屾暟鎹椂锛岃璁や负鏄簨鍔′箣闂存棤娉曟劅鐭ョ殑瀛樺湪褰兼锛屾墍浠ユ渶鍚庣殑鏇存柊鎿嶄綔浼氳鐩栦箣鍓嶅叾浠栦簨鍔″畬鎴愮殑鏇存柊鎿嶄綔銆備緥濡傦細寮犱笁鐨勮处鎴锋槸100鍏冿紝鐩墠鏈変袱绗斾氦鏄擄細浜ゆ槗1鍜屼氦鏄?锛屼氦鏄?鏄皢寮犱笁鐨勮处鎴蜂綑棰濆鍔?00鍏冿紝浜ゆ槗2鏄皢寮犱笁鐨勮处鎴蜂綑棰濆鍔?00鍏冿紝棣栧厛浜嬪姟1鍜屼簨鍔?鍚屾椂璇诲彇鍒板紶涓夌殑璐︽埛浣欓涓?00鍏冿紝鐒跺悗浜嬪姟1鍜屼簨鍔?鍒嗗埆鏇存柊寮犱笁鏈堛€傚亣璁句簨鍔?鍏堜簬浜嬪姟2鎻愪氦锛屼絾鏄湪鏈€鍚庝袱绗斾簨鍔℃彁浜や箣鍚庯紝寮犱笁鐨勪綑棰濅负300鍏冿紙姝e父鎯呭喌涓嬪簲璇ユ槸400鍏冿級锛屼篃灏辨槸璇达細鍚庨潰鎻愪氦鐨勪簨鍔?瑕嗙洊浜嗕簨鍔$殑鏇存柊鎿嶄綔1锛屼篃灏辨槸鎵€璋撶殑lostupdate锛宭ostupdate锛堣剰鍐欙級鏈川涓婃槸鍐欐搷浣滅殑鍐茬獊銆備絾鏄В鍐宠剰鍐欑殑鏂规硶鏄姣忎釜浜嬪姟涓茶鎵ц锛屼繚璇佷簨鍔℃寜鐓т竴瀹氱殑椤哄簭鎵ц鍐欐搷浣溿€傝剰璇绘槸鎸囦竴涓簨鍔′粠鍙︿竴涓簨鍔¤鍙栨湭鎻愪氦鐨勬暟鎹€備緥濡傦細浜ゆ槗1鏄粰寮犱笁鐨勪綑棰濆鍔?00鍏冦€傚湪杩欎釜浜嬪姟鎻愪氦涔嬪墠锛屽彟涓€涓簨鍔?璇诲彇姝e湪淇敼鐨勬暟鎹€傚鏋滄病鏈変簨鍔℃帶鍒讹紝绗簩涓簨鍔′細璇诲彇鍒版湭鎻愪氦鐨勮剰鏁版嵁锛岃€屼笅涓€姝ュ鐞嗚剰鏁版嵁闆嗙兢锛屾鏃朵細瀛樺湪鏈彁浜ゆ暟鎹殑渚濊禆锛岄€氬父杩欑鐜拌薄绉颁负鑴忚锛屼篃灏辨槸璇达細鑴忚鏄竴绉嶄簨鍔℃€х殑璇诲彇锛屽彇鍒颁簡涓嶆槸鍙︿竴涓簨鍔℃彁浜ょ殑鏁版嵁銆傪煠旇剰璇绘湰璐ㄤ笂鏄鍐欐搷浣滅殑鍐茬獊銆傝В鍐虫柟娉曟槸鍏堝啓鍚庤锛屽嵆鍏堝啓鍚庤銆備笉鍙噸澶嶈涓€涓簨鍔¤鍙栦竴浜涙暟鎹€備竴娈垫椂闂村悗锛屼簨鍔″啀娆¤鍙栦箣鍓嶈鍙栫殑鏁版嵁銆傝繖鏃跺彂鐜拌鍙栫殑鏁版嵁鍙戠敓浜嗗彉鍖栵紝鎴栬€呭垹闄や簡閮ㄥ垎鏁版嵁璁板綍銆傝繖绉嶇幇璞$О涓猴細涓嶅彲閲嶅璇伙紝鍗冲悓涓€涓簨鍔′娇鐢ㄥ悓涓€涓煡璇㈣鍙ワ紝浣嗕笉鍚屾椂闂磋鍙栫殑缁撴灉涓嶄竴鑷淬€備笉鍙噸澶嶈鐨勬湰璐ㄤ篃鏄鍐欐搷浣滅殑鍐茬獊銆傝В鍐虫柟娉曟槸鍏堣鍚庡啓锛屽嵆鍏堣鍚庡啓銆傚够璇讳竴涓簨鍔℃牴鎹浉鍚岀殑鏌ヨ鏉′欢閲嶆柊璇诲彇涔嬪墠璇诲彇鐨勬暟鎹€傝繖鏃跺彂鐜板叾浠栦簨鍔℃彃鍏ヤ簡婊¤冻褰撳墠鏌ヨ鏉′欢鐨勬柊鏁版嵁锛屾暟鎹粨鏋滈泦澧炲姞銆傝繖绉嶇幇璞$О涓哄够璇伙紝鍗充竴涓簨鍔″涓€涓寖鍥村唴鐨勬暟鎹褰曡繘琛屼簡涓ゆ璇诲彇锛屼袱娆¤鍙栫殑缁撴灉鏄笉鍚岀殑銆傚够璇绘湰璐ㄤ笂鏄鍐欐搷浣滀箣闂寸殑鍐茬獊銆傝В鍐虫柟娉曟槸鍏堣鍚庡啓锛屽嵆鍏堣鍚庡啓銆傝嚦姝わ紝寰堝鏈嬪弸蹇冨瓨鐤戣檻銆傜浉鍚岀殑鏈川鏄鍐欐搷浣滅殑鍐茬獊銆傝В鍐冲姙娉曟槸鍏堣鍚庡啓銆備笉鍙噸澶嶈鍜屽够璇绘湁浠€涔堝尯鍒紵涓嬮潰鎴戠畝鍗曡В閲婁竴涓嬶細1锔忊儯涓嶅彲閲嶅璇荤殑閲嶇偣鏄痷pdate鍜宒elete鎿嶄綔锛岃€屽够璇荤殑閲嶇偣鏄痠nsert鎿嶄綔銆?锔忊儯MySQL鍦ㄤ娇鐢ㄩ攣鏈哄埗瀹炵幇浜嬪姟闅旂绾у埆鏃讹紝鍦ㄥ彲閲嶅璇婚殧绂荤骇鍒笅锛岀涓€鏉QL璇彞璇诲彇鏁版嵁鍚庯紝浼氶攣瀹氱浉搴旂殑鏁版嵁锛屼娇寰楀叾浠栦簨鍔℃棤娉曚慨鏀瑰拰鍒犻櫎鏁版嵁銆傞攣鐢ㄤ簬瀹炵幇鍙噸澶嶈銆備絾鏄紝杩欑鏂规硶鏃犳硶閿佸畾鏂版暟鎹殑鎻掑叆銆傚鏋滀簨鍔?璇诲彇鏁版嵁锛屾垨鑰呬慨鏀瑰垹闄ゆ暟鎹紝浜嬪姟2涔熷彲浠ヨ繘琛屾彃鍏ユ搷浣滐紝瀵艰嚧浜嬪姟1鑾悕鍏跺鐨勫鍔犱簡涓€鏉′箣鍓嶄笉瀛樺湪鐨勬暟鎹€傝繖鏄够璇汇€?锔忊儯鍥犳鏃犳硶閫氳繃閿佹満鍒堕伩鍏嶅够璇伙紝闇€瑕佸簭鍒楀寲鐨勪簨鍔¢殧绂荤骇鍒紝浣嗚繖绉嶄簨鍔¢殧绂荤骇鍒細澶уぇ闄嶄綆鏁版嵁搴撶殑骞跺彂鑳藉姏銆傗湐MySQL浣跨敤MVCC锛堝鐗堟湰骞跺彂鎺у埗锛夋満鍒舵潵閬垮厤涓嶅彲閲嶅璇诲拰骞昏銆?銆丮ySQL浜嬪姟鐨勯殧绂荤骇鍒娇鐢ㄥ涓嬪懡浠ゆ煡璇㈠叏灞€绾у埆鍜屼細璇濈骇鍒殑浜嬪姟闅旂绾у埆锛?鏁版嵁搴撻粯璁ょ殑浜嬪姟闅旂绾у埆涓猴細鍙噸澶嶈锛圧EPEATABLE-READ锛塖ELECT@@global.tx_isolation;SELECT@@session.tx_isolation;閫夋嫨@@tx_isolation锛涗簲銆佸鐗堟湰骞跺彂鎺у埗MVCCMulti-VersionConcurrencyControl澶氱増鏈苟鍙戞帶鍒讹紝MVCC鏄竴绉嶅苟鍙戞帶鍒舵柟娉曪紝涓€鑸湪鏁版嵁搴撶鐞嗙郴缁熶腑锛屽疄鐜板鏁版嵁搴撶殑骞跺彂璁块棶銆侻VCC鐩稿浜庨攣鐨勪紭鍔縈VCC鍙互鐪嬩綔鏄绾ч攣鐨勬姌琛凤紝瀹冨湪璁稿鎯呭喌涓嬮伩鍏嶄簡閿佺殑浣跨敤锛屽悓鏃舵彁渚涗簡鏇村皯鐨勫紑閿€銆傛牴鎹疄鐜扮殑涓嶅悓锛屽畠鍙兘鍏佽闈為樆濉炶鍙栵紝鍦ㄨ繘琛屽啓鍏ユ搷浣滄椂鍙攣瀹氬繀瑕佺殑璁板綍銆侻VCC鐨勫疄鐜板師鐞哅VCC鏄€氳繃淇濆瓨鏌愪釜鏃堕棿鐐圭殑鏁版嵁姹犲揩鐓ф潵瀹炵幇鐨勶紝涔熷氨鏄鏃犺浜嬪姟鎵ц澶氶暱鏃堕棿锛屾瘡涓簨鍔$湅鍒扮殑鏁版嵁閮芥槸涓€鑷寸殑銆傛牴鎹簨鍔$殑寮€濮嬫椂闂达紝姣忎釜浜嬪姟鍙兘浼氬悓鏃剁湅鍒板悓涓€寮犺〃鐨勪笉鍚屾暟鎹€侷nnonDB瀹炵幇MVCC涓昏鏄湪姣忚璁板綍涓鍔犱袱涓澶栫殑闅愯棌鍊笺€傝繖涓や釜鍊煎叾涓竴涓褰曡琛屾暟鎹綍鏃惰鍒涘缓锛屽彟涓€涓褰曡琛屾暟鎹綍鏃惰繃鏈燂紙鎴栬鍒犻櫎锛夈€備絾鏄疘nnoDB骞朵笉瀛樺偍杩欎簺浜嬩欢鍙戠敓鐨勫疄闄呮椂闂达紝鑰屾槸鍙瓨鍌ㄨ繖浜涗簨浠跺彂鐢熸椂鐨勭郴缁熺増鏈彿锛坴ersion锛夈€傝繖鏄竴涓殢鐫€浜ゆ槗鐨勫垱寤鸿€屽闀跨殑鏁板瓧銆傛瘡涓簨鍔″湪浜嬪姟寮€濮嬫椂璁板綍鑷繁鐨勭郴缁熺増鏈彿銆傛瘡娆℃煡璇㈤兘瑕佹鏌ユ瘡琛屾暟鎹殑鐗堟湰鍙锋槸鍚︿笌浜嬪姟鐨勭増鏈彿鐩稿悓銆傘€婇珮鎬ц兘MySQL銆嬩功涓粙缁嶏細MVCC鍙伐浣滃湪REPEATABLEREAD鍜孯EADCOMMITTIED杩欎袱涓殧绂荤骇鍒笅锛屽叾浠栦袱涓殧绂荤骇鍒笉鍏煎MVCC锛屽洜涓篟EADUNCOMMITTED鎬绘槸璇诲彇鏈€鏂扮殑鏁版嵁琛岋紝涓嶇鍚堝綋鍓嶄簨鍔$増鏈殑鏁版嵁琛岋紝鑰孲ERIALIZABLE搴忓垪鍖栭殧绂荤骇鍒皢閿佸畾鎵€鏈夎鍙栫殑琛屻€備笅闈妇渚嬭鏄嶮VCC鏈哄埗濡備綍鍦ㄥ彲閲嶅璇讳簨鍔¢殧绂荤骇鍒笅瀹屾垚澧炲垹鏀规煡鎿嶄綔銆傛煡璇㈡搷浣滐紙SELECT锛夊湪鏌ヨ鎿嶄綔涓紝InnoDB瀛樺偍寮曟搸鏍规嵁浠ヤ笅涓や釜鏉′欢鏌ヨ瀵瑰簲鐨勮璁板綍锛屽彧鏈夋弧瓒冲搴旂殑鏉′欢鎵嶄細杩斿洖锛?锔忊儯鍙煡鎵句笉鏅氫簬褰撳墠浜嬪姟鐗堟湰锛屼篃灏辨槸璇达紝InnoDB瀛樺偍寮曟搸鍙細鏌ユ壘鐗堟湰鍙峰皬浜庢垨绛変簬褰撳墠浜嬪姟鐗堟湰鐨勬暟鎹銆傝繖浜涙暟鎹瑕佷箞鍦ㄤ簨鍔″紑濮嬩箣鍓嶅氨宸茬粡瀛樺湪锛岃涔堟槸浜嬪姟鏈韩鎻掑叆鎴栨洿鏂扮殑琛屻€?锔忊儯鏁版嵁鍒犻櫎锛屽垹闄ょ殑鏁版嵁琛岀増鏈涔堟病鏈夊畾涔夛紝瑕佷箞澶т簬褰撳墠浜嬪姟鐨勭増鏈彿銆傚彧鏈夎繖鏍锋墠鑳戒繚璇佷簨鍔¤鍙栫殑琛屽湪浜嬪姟寮€濮嬪墠涓嶈鍒犻櫎銆傛瘮濡傛湁涓や釜浜嬪姟锛屼簨鍔鍜屼簨鍔锛屼簨鍔涓湁涓ょ粍鐩稿悓鐨凷ELECT璇彞锛屼簨鍔涓湁涓€鏉PDATE璇彞锛屼簨鍔鐨勭涓€鏉℃煡璇㈣鍙ュ湪浜嬪姟B鎻愪氦涔嬪墠鎵ц,鑰岀浜屾潯鏌ヨ璇彞鏌ヨ璇彞鍦ㄤ簨鍔鎻愪氦鍚庢墽琛岋紝浜嬪姟A濡備笅锛?-浜嬪姟A鎿嶄綔STARTTRANSACTION;SELECT*FROM璐︽埛WHEREid=1;//鍦ㄤ簨鍔鎻愪氦涔嬪墠鎵цSELECT*FROMaccountWHEREid=1;//浜嬪姟B鎻愪氦鍚庢墽琛孋OMMIT锛涗簨鍔:--浜嬪姟B鎿嶄綔STARTTRANSACTION;鏇存柊璐︽埛SETbalance=balance+100WHEREid=1;鐘姜;鉁旂粨璁猴細濡傛灉涓嶄娇鐢∕VCC鏈哄埗锛屼簨鍔′腑绗竴涓猄ELECT璇彞璇诲彇淇敼鍓嶇殑鏁版嵁锛岃€岀浜屼釜SELECT璇彞璇诲彇淇敼鍚庣殑鏁版嵁锛屼袱娆¤鍙栫殑鏁版嵁涓嶄竴鑷达紝鎯虫兂锛屼笉浼氫細涔卞悧馃槰锛熷鏋滀娇鐢∕VCC鏈哄埗锛屾棤璁轰簨鍔濡備綍淇敼鏁版嵁锛屼簨鍔鐨勪袱鏉℃煡璇㈣鍙ョ殑缁撴灉濮嬬粓鏄竴鑷寸殑銆傛彃鍏ユ搷浣滐紙SELECT锛夊湪鎻掑叆鎿嶄綔涓紝InnoDB浼氬皢姣忔潯鏂版彃鍏ョ殑琛岃褰曠殑褰撳墠绯荤粺鐗堟湰鍖呬繚瀛樹负琛岀増鏈彿銆備緥濡傦細鍦╝ccount琛ㄤ腑鎻掑叆涓€鏉℃暟鎹紝MVCC鐨勪袱涓増鏈彿鍒嗗埆鏄痗reate_version鍜宒elete_version锛宑reate_version琛ㄧず鍒涘缓琛岀殑鐗堟湰鍙凤紝delete_version琛ㄧず鍒犻櫎琛岀殑鐗堟湰鍙凤紝杩樻湁浜ゆ槗ID瀛楁锛屽涓嬫墍绀猴細INSERTINTOaccount(id,name,balance)values(1001,'austin',100);澶嶅埗浠g爜瀵瑰簲鐨勭増鏈彿淇℃伅濡備笅琛細idnamebalancetransaction_idcreate_versiondelete_version1001austin10011鏈畾涔夈€傚彲浠ョ湅鍑猴紝鍦ㄥ悜鏁版嵁琛ㄤ腑娣诲姞涓€鏉¤褰曟椂锛岄渶瑕佽缃竴琛岀殑鐗堟湰鍙蜂繚瀛橈紝鑰屽垹闄や竴琛岀殑鐗堟湰鍙锋槸鏈畾涔夌殑銆傛洿鏂版搷浣滐紙SELECT锛夊湪鏇存柊鎿嶄綔涓紝InnoDB瀛樺偍寮曟搸浼氭彃鍏ヤ竴涓柊琛岋紝骞跺皢褰撳墠绯荤粺鐨勭増鏈彿淇濆瓨涓烘柊璁板綍琛岀殑鐗堟湰鍙凤紝骞跺皢褰撳墠绯荤粺鐨勭増鏈彿淇濆瓨鍒板師濮嬫暟鎹浣滀负鍒犻櫎鏍囪瘑绗︺€備緥濡傦細璐︽埛鏁版嵁琛ㄤ腑id涓?001鐨勭敤鎴疯处鎴锋瘡鏈堝鍔?00鍏冿紝瀵瑰簲鐨凷QL濡備笅锛歎PDATEaccountSETbalance=balance+100WHEREid=1001;澶嶅埗浠g爜鎵цSQL锛孧VCC鏈哄埗涓嬬殑鏇存柊鎿嶄綔濡備笅琛ㄦ墍绀猴細idnamebalancetransaction_idcreate_versiondelete_version1001austin1001121001austin20022undefined鍙互娓呮鐨勭湅鍒帮紝鍦ㄦ墽琛屾洿鏂版搷浣滄椂锛孧VCC鏈哄埗棣栧厛澶嶅埗鍘熷鏁版嵁锛屽鍔燽alance瀛楁100锛岀劧鍚庤缃甤reate_version瀛楁鐨勫€间负褰撳墠绯荤粺鐗堟湰鍙凤紝delete_version瀛楁鐨勫€间负undefined銆傛敞鎰忥細鍘熷琛屽皢琚鍒跺埌鎾ゆ秷鏃ュ織涓€傚垹闄ゆ搷浣滐紙SELECT锛夊湪鍒犻櫎鎿嶄綔涓紝InnoDB瀛樺偍寮曟搸浼氫繚瀛樻瘡鏉¤鍒犻櫎琛岃褰曠殑褰撳墠绯荤粺鐗堟湰鍙蜂綔涓哄垹闄ゆ爣璇嗐€備緥濡傦細鍒犻櫎account鏁版嵁琛ㄤ腑id涓?001鐨勬暟鎹紝SQL濡備笅锛欴ELETEFROMaccountWHEREid=1001;澶嶅埗浠g爜瀵瑰簲MVCC鏈哄埗涓嬬殑鍒犻櫎鎿嶄綔濡備笅琛細idnamebalancetransaction_idcreate_versiondelete_version1001austin200323鍙互鐪嬪嚭锛屽綋鍒犻櫎鏁版嵁琛ㄦ暟鎹椂锛孧VCC鏈哄埗浼氬皢褰撳墠绯荤粺鐨勭増鏈彿鍐欏叆delete_version宸插垹闄ゆ暟鎹瀛楁锛岃〃绀哄綋鍓嶆暟鎹宸茶鍒犻櫎銆?.灏忕粨鏈枃涓昏浠嬬粛浜嬪姟鐨勭壒鐐瑰拰绫诲瀷锛屼互鍙婃湰鍦颁簨鍔″拰鍒嗗竷寮忎簨鍔$殑鍖哄埆銆傞€氳繃涓嶅悓鐨勪緥瀛愯В閲婂苟鍙戜簨鍔″鑷寸殑鏇存柊涓㈠け銆佽剰璇汇€佷笉鍙噸澶嶈銆佸够璇荤瓑闂銆傝繕浠嬬粛浜嗗鐗堟湰骞跺彂鎺у埗MVCC鐨勫疄鐜板師鐞嗐€?/p>
