涓銆佷簨鍔$殑4涓熀鏈壒寰?nbsp;
褰撲簨鍔″鐞嗙郴緇熷垱寤轟簨鍔℃椂錛屽皢紜繚浜嬪姟鏈夋煇浜涚壒鎬с傜粍浠剁殑寮鍙戣呬滑鍋囪浜嬪姟鐨勭壒鎬у簲璇ユ槸涓浜涗笉闇瑕佷粬浠翰鑷鐞嗙殑鐗規с傝繖浜涚壒鎬хО涓篈CID鐗規с?ACID灝辨槸錛氬師瀛愭?Atomicity )銆佷竴鑷存? Consistency )銆侀殧紱繪ф垨鐙珛鎬? Isolation)鍜屾寔涔呮?Durabilily)銆?nbsp;
1銆佸師瀛愭?(Atomicity )
鍘熷瓙鎬у睘鎬х敤浜庢爣璇嗕簨鍔℃槸鍚﹀畬鍏ㄥ湴瀹屾垚錛屼竴涓簨鍔$殑浠諱綍鏇存柊瑕佸湪緋葷粺涓婂畬鍏ㄥ畬鎴愶紝濡傛灉鐢變簬鏌愮鍘熷洜鍑洪敊錛屼簨鍔′笉鑳藉畬鎴愬畠鐨勫叏閮ㄤ換鍔★紝緋葷粺灝嗚繑鍥炲埌浜嬪姟寮濮嬪墠鐨勭姸鎬併?nbsp;
璁╂垜浠啀鐪嬩竴涓嬮摱琛岃漿甯愮殑渚嬪瓙銆傚鏋滃湪杞笎鐨勮繃紼嬩腑鍑虹幇閿欒錛屾暣涓簨鍔″皢浼氬洖婊氥傚彧鏈夊綋浜嬪姟涓殑鎵鏈夐儴鍒嗛兘鎴愬姛鎵ц浜嗭紝鎵嶅皢浜嬪姟鍐欏叆紓佺洏騫朵嬌鍙樺寲 姘鎬箙鍖栥備負浜嗘彁渚涘洖婊氭垨鑰呮挙娑堟湭鎻愪氦鐨勫彉鍖栫殑鑳藉姏錛岃澶氭暟鎹簮閲囩敤鏃ュ織鏈哄埗銆備緥濡傦紝SQL Server浣跨敤涓涓鍐欎簨鍔℃棩蹇楋紝鍦ㄥ皢鏁版嵁搴旂敤浜?鎴栨彁浜ゅ埌)瀹為檯鏁版嵁欏甸潰鍓嶏紝鍏堝啓鍦ㄤ簨鍔℃棩蹇椾笂銆備絾鏄紝鍏朵粬涓浜涙暟鎹簮涓嶆槸鍏崇郴鍨嬫暟鎹簱綆$悊緋葷粺 (RDBMS)錛屽畠浠鐞嗘湭鎻愪氦浜嬪姟鐨勬柟寮忓畬鍏ㄤ笉鍚屻傚彧瑕佷簨鍔″洖婊氭椂錛屾暟鎹簮鍙互鎾ゆ秷鎵鏈夋湭鎻愪氦鐨勬敼鍙橈紝閭d箞榪欑鎶鏈簲璇ュ彲鐢ㄤ簬綆$悊浜嬪姟銆?nbsp;
2銆佷竴鑷存? Consistency )
浜嬪姟鍦ㄧ郴緇熷畬鏁存т腑瀹炴柦涓鑷存э紝榪欓氳繃淇濊瘉緋葷粺鐨勪換浣曚簨鍔℃渶鍚庨兘澶勪簬鏈夋晥鐘舵佹潵瀹炵幇銆傚鏋滀簨鍔℃垚鍔熷湴瀹屾垚錛岄偅涔堢郴緇熶腑鎵鏈夊彉鍖栧皢姝g‘鍦板簲鐢紝緋葷粺澶勪簬鏈夋晥鐘舵併傚鏋滃湪浜嬪姟涓嚭鐜伴敊璇紝閭d箞緋葷粺涓殑鎵鏈夊彉鍖栧皢鑷姩鍦板洖婊氾紝緋葷粺榪斿洖鍒板師濮嬬姸鎬併傚洜涓轟簨鍔″紑
濮嬫椂緋葷粺澶勪簬涓鑷寸姸鎬侊紝鎵浠ョ幇鍦ㄧ郴緇熶粛鐒跺浜庝竴鑷寸姸鎬併?鍐嶈鎴戜滑鍥炲ご鐪嬩竴涓嬮摱琛岃漿甯愮殑渚嬪瓙錛屽湪甯愭埛杞崲鍜岃祫閲戣漿縐誨墠錛屽笎鎴峰浜庢湁鏁堢姸鎬併傚鏋滀簨鍔℃垚鍔熷湴瀹屾垚錛屽茍涓旀彁浜や簨鍔★紝鍒欏笎鎴峰浜庢柊鐨勬湁鏁堢殑鐘舵併傚鏋滀簨鍔″嚭閿欙紝緇堟鍚庯紝甯愭埛榪斿洖鍒板師鍏堢殑鏈夋晥鐘舵併?nbsp;
璁頒綇錛屼簨鍔′笉璐熻矗瀹炴柦鏁版嵁瀹屾暣鎬э紝鑰屼粎浠呰礋璐e湪浜嬪姟鎻愪氦鎴栫粓姝互鍚庣‘淇濇暟鎹繑鍥炲埌涓鑷寸姸鎬併傜悊瑙f暟鎹畬鏁存ц鍒欏茍鍐欎唬鐮佸疄鐜板畬鏁存х殑閲嶄換閫氬父钀藉湪 寮鍙戣呰偐涓婏紝浠栦滑鏍規嵁涓氬姟瑕佹眰榪涜璁捐銆?褰撹澶氱敤鎴峰悓鏃朵嬌鐢ㄥ拰淇敼鍚屾牱鐨勬暟鎹椂錛屼簨鍔″繀欏諱繚鎸佸叾鏁版嵁鐨勫畬鏁存у拰涓鑷存с傚洜姝ゆ垜浠繘涓姝ョ爺絀禔 C I D鐗規т腑鐨勪笅涓涓壒鎬э細闅旂鎬с?nbsp;
3銆侀殧紱繪?( Isolation)
鍦ㄩ殧紱葷姸鎬佹墽琛屼簨鍔★紝浣垮畠浠ソ鍍忔槸緋葷粺鍦ㄧ粰瀹氭椂闂村唴鎵ц鐨勫敮涓鎿嶄綔銆傚鏋滄湁涓や釜浜嬪姟錛岃繍琛屽湪鐩稿悓鐨勬椂闂村唴錛屾墽琛岀浉鍚岀殑鍔熻兘錛屼簨鍔$殑闅旂鎬у皢紜繚姣忎竴浜嬪姟鍦?緋葷粺涓涓哄彧鏈夎浜嬪姟鍦ㄤ嬌鐢ㄧ郴緇熴?榪欑灞炴ф湁鏃剁О涓轟覆琛屽寲錛屼負浜嗛槻姝簨鍔℃搷浣滈棿鐨勬販娣嗭紝蹇呴』涓茶鍖栨垨搴忓垪鍖栬姹傦紝浣垮緱鍦ㄥ悓涓鏃墮棿浠呮湁涓涓姹傜敤浜庡悓涓鏁版嵁銆傞噸瑕佺殑鏄紝鍦ㄩ殧紱葷姸鎬佹墽琛屼簨鍔★紝 緋葷粺鐨勭姸鎬佹湁鍙兘鏄笉涓鑷寸殑錛屽湪緇撴潫浜嬪姟鍓嶏紝搴旂‘淇濈郴緇熷浜庝竴鑷寸姸鎬併備絾鏄湪姣忎釜鍗曠嫭鐨勪簨鍔′腑錛岀郴緇熺殑鐘舵佸彲鑳戒細鍙戠敓鍙樺寲銆傚鏋滀簨鍔′笉鏄湪闅旂鐘舵佽繍琛岋紝 瀹冨氨鍙兘浠庣郴緇熶腑璁塊棶鏁版嵁錛岃岀郴緇熷彲鑳藉浜庝笉涓鑷寸姸鎬併傞氳繃鎻愪緵浜嬪姟闅旂錛屽彲浠ラ樆姝㈣繖綾諱簨浠剁殑鍙戠敓銆傚湪閾惰鐨勭ず渚嬩腑錛岃繖鎰忓懗鐫鍦ㄨ繖涓郴緇熷唴錛屽叾浠栬繃紼嬪拰浜?鍔″湪鎴戜滑鐨勪簨鍔″畬鎴愬墠鐪嬩笉鍒版垜浠殑浜嬪姟寮曡搗鐨勪換浣曞彉鍖栵紝榪欏浜庣粓姝㈢殑鎯呭喌闈炲父閲嶈銆傚鏋滄湁鍙︿竴涓繃紼嬫牴鎹笎鎴蜂綑棰濊繘琛岀浉搴斿鐞嗭紝鑰屽畠鍦ㄦ垜浠殑浜嬪姟瀹屾垚鍓嶅氨 鑳界湅鍒板畠閫犳垚鐨勫彉鍖栵紝閭d箞榪欎釜榪囩▼鐨勫喅絳栧彲鑳?nbsp;
寤虹珛鍦ㄩ敊璇殑鏁版嵁涔嬩笂錛屽洜涓烘垜浠殑浜嬪姟鍙兘緇堟銆傝繖灝辨槸璇存槑浜嗕負浠涔堜簨鍔′駭鐢熺殑鍙樺寲錛岀洿鍒頒簨鍔″畬鎴愶紝鎵嶅緋葷粺鐨勫叾浠栭儴鍒嗗彲瑙併傞殧紱繪т笉浠呬粎淇?璇佸涓簨鍔′笉鑳藉悓鏃朵慨鏀圭浉鍚屾暟鎹紝鑰屼笖鑳藉淇濊瘉浜嬪姟鎿嶄綔浜х敓鐨勫彉鍖栫洿鍒板彉鍖栬鎻愪氦鎴栫粓姝㈡椂鎵嶈兘瀵瑰彟涓涓簨鍔″彲瑙侊紝騫跺彂鐨勪簨鍔″郊姝や箣闂存鏃犲獎鍝嶃傝繖灝辨剰鍛崇潃 鎵鏈夎姹備慨鏀規垨璇誨彇鐨勬暟鎹凡緇忚閿佸畾鍦ㄤ簨鍔′腑錛岀洿鍒頒簨鍔″畬鎴愭墠鑳介噴鏀俱傚ぇ澶氭暟鏁版嵁搴擄紝渚嬪SQL Server浠ュ強鍏朵粬鐨凴DBMS錛岄氳繃浣跨敤閿佸畾鏉ュ疄鐜伴殧紱伙紝浜嬪姟涓秹鍙婄殑鍚勪釜鏁版嵁欏規垨鏁版嵁闆嗕嬌鐢ㄩ攣瀹氭潵闃叉騫跺彂璁塊棶銆?nbsp;
4銆佹寔涔呮?(Durabilily)
鎸佷箙鎬ф剰鍛崇潃涓鏃︿簨鍔℃墽琛屾垚鍔燂紝鍦ㄧ郴緇熶腑浜х敓鐨勬墍鏈夊彉鍖栧皢鏄案涔呯殑銆傚簲璇ュ瓨鍦ㄤ竴浜涙鏌ョ偣闃叉鍦ㄧ郴緇熷け璐ユ椂涓㈠け淇℃伅銆傜敋鑷崇‖浠舵湰韜け璐ワ紝緋葷粺鐨勭姸鎬佷粛鑳介氳繃鍦ㄦ棩蹇椾腑璁板綍浜嬪姟瀹屾垚鐨勪換鍔¤繘琛岄噸寤恒傛寔涔呮х殑姒傚康鍏佽寮鍙戣呰涓轟笉綆$郴緇熶互鍚庡彂鐢熶簡浠涔堝彉鍖栵紝瀹?nbsp;
鎴愮殑浜嬪姟鏄郴緇熸案涔呯殑閮ㄥ垎銆?鍦ㄩ摱琛岀殑渚嬪瓙涓紝璧勯噾鐨勮漿縐繪槸姘鎬箙鐨勶紝涓鐩翠繚鎸佸湪緋葷粺涓傝繖鍚搗鏉ヤ技涔庣畝鍗曪紝浣嗚繖錛屼緷璧栦簬灝嗘暟鎹啓鍏ョ鐩橈紝鐗瑰埆闇瑕佹寚鍑虹殑鏄紝鍦ㄤ簨鍔″畬鍏ㄥ畬鎴愬茍鎻愪氦鍚庢墠鍐?鍏ョ鐩樼殑銆?鎵鏈夎繖浜涗簨鍔$壒鎬э紝涓嶇鍏跺唴閮ㄥ浣曞叧鑱旓紝浠呬粎鏄繚璇佷粠浜嬪姟寮濮嬪埌浜嬪姟瀹屾垚錛屼笉綆′簨鍔℃垚鍔熶笌鍚︼紝閮借兘姝g‘鍦扮鐞嗕簨鍔℃秹鍙婄殑鏁版嵁 錛屽綋浜嬪姟澶勭悊緋葷粺鍒涘緩浜嬪姟 鏃訛紝灝嗙‘淇濅簨鍔℃湁鏌愪簺鐗規с傜粍浠剁殑寮鍙戣呬滑鍋囪浜嬪姟鐨勭壒鎬у簲璇ユ槸涓浜涗笉闇瑕佷粬浠翰鑷鐞嗙殑鐗規с?nbsp;
浜屻佷負浠涔堥渶瑕佸浜嬪姟騫跺彂鎺у埗
濡傛灉涓嶅浜嬪姟榪涜騫跺彂鎺у埗錛屾垜浠湅鐪嬫暟鎹簱騫跺彂鎿嶄綔鏄細鏈夐偅浜涘紓甯告儏褰?nbsp;
1銆佷涪澶辨洿鏂?Lost update)
涓や釜浜嬪姟閮藉悓鏃舵洿鏂頒竴琛屾暟鎹紝浣嗘槸絎簩涓簨鍔″嵈涓斿け璐ラ鍑猴紝瀵艱嚧瀵規暟鎹殑涓や釜淇敼閮藉け鏁堜簡銆?nbsp;
2銆佽剰璇?Dirty Reads)
涓涓簨鍔″紑濮嬭鍙栦簡鏌愯鏁版嵁錛屼絾鏄彟澶栦竴涓簨鍔″凡緇忔洿鏂頒簡姝ゆ暟鎹絾娌℃湁鑳藉鍙婃椂鎻愪氦銆傝繖鏄浉褰撳嵄闄╃殑錛屽洜涓哄緢鍙兘鎵鏈夌殑鎿嶄綔閮借鍥炴粴銆?nbsp;
3銆侀潪閲嶅璇?Non-repeatable Reads)
涓涓簨鍔″鍚屼竴琛屾暟鎹噸澶嶈鍙栦袱嬈★紝浣嗘槸鍗村緱鍒頒簡涓嶅悓鐨勭粨鏋溿傚悓涓鏌ヨ鍦ㄥ悓涓浜嬪姟涓嬈¤繘琛岋紝鐢變簬鍏朵粬鎻愪氦浜嬪姟鎵鍋氱殑淇敼鎴栧垹闄わ紝姣忔榪斿洖涓嶅悓鐨勭粨鏋滈泦錛屾鏃跺彂鐢熼潪閲嶅璇匯?nbsp;
4銆佷簩綾諱涪澶辨洿鏂?Second lost updates problem)
鏃犳硶閲嶅璇誨彇鐨勭壒渚嬨傛湁涓や釜騫跺彂浜嬪姟鍚屾椂璇誨彇鍚屼竴琛屾暟鎹紝鐒跺悗鍏朵腑涓涓瀹冭繘琛屼慨鏀規彁浜わ紝鑰屽彟涓涓篃榪涜浜嗕慨鏀規彁浜ゃ傝繖灝變細閫犳垚絎竴嬈″啓鎿嶄綔澶辨晥銆?nbsp;
5銆佸夠鍍忚(Phantom Reads)
浜嬪姟鍦ㄦ搷浣滆繃紼嬩腑榪涜涓ゆ鏌ヨ錛岀浜屾鏌ヨ鐨勭粨鏋滃寘鍚簡絎竴嬈℃煡
璇腑鏈嚭鐜扮殑鏁版嵁錛堣繖閲屽茍涓嶈姹備袱嬈℃煡璇㈢殑SQL璇彞鐩稿悓錛夈傝繖鏄洜涓哄湪涓ゆ鏌ヨ榪囩▼涓湁鍙﹀涓涓簨鍔℃彃鍏ユ暟鎹犳垚鐨勩?nbsp;
涓夈佹暟鎹簱鐨勯殧紱葷駭鍒?nbsp;
涓轟簡鍏奸【騫跺彂鏁堢巼鍜屽紓甯告帶鍒訛紝鍦ㄦ爣鍑哠QL瑙勮寖涓紝瀹氫箟浜?涓簨鍔¢殧紱葷駭鍒紝錛圤RACLE鍜孲QLSERER瀵規爣鍑嗛殧紱葷駭鍒湁涓嶅悓鐨勫疄鐜?錛?nbsp;
1銆佹湭鎻愪氦璇?Read Uncommitted)
鐩磋瘧灝辨槸"璇繪湭鎻愪氦",鎰忔濆氨鏄嵆浣夸竴涓洿鏂拌鍙ユ病鏈夋彁浜?浣嗘槸鍒?nbsp;
鐨勪簨鍔″彲浠ヨ鍒拌繖涓敼鍙?榪欐槸寰堜笉瀹夊叏鐨勩傚厑璁鎬換鍔¤鍙栨暟鎹簱涓湭鎻愪氦鐨勬暟鎹洿鏀癸紝涔熺О涓鴻剰璇匯?nbsp;
2銆佹彁浜よ(Read Committed)
鐩磋瘧灝辨槸"璇繪彁浜?,鍙槻姝㈣剰璇伙紝鎰忔濆氨鏄鍙ユ彁浜や互鍚庡嵆鎵ц浜咰OMMIT浠ュ悗
鍒殑浜嬪姟灝辮兘璇誨埌榪欎釜鏀瑰彉. 鍙兘璇誨彇鍒板凡緇忔彁浜ょ殑鏁版嵁銆侽racle絳夊鏁版暟鎹簱榛樿閮芥槸璇ョ駭鍒?nbsp;
3銆佸彲閲嶅璇?Repeatable Read)錛?nbsp;
鐩磋瘧灝辨槸"鍙互閲嶅璇?,榪欐槸璇村湪鍚屼竴涓簨鍔¢噷闈㈠厛鍚庢墽琛屽悓涓涓煡璇㈣鍙ョ殑鏃跺?寰楀埌鐨勭粨鏋滄槸涓鏍風殑.鍦ㄥ悓涓涓簨鍔″唴鐨勬煡璇㈤兘鏄簨鍔″紑濮嬫椂鍒諱竴鑷寸殑錛孖nnoDB榛樿綰у埆銆傚湪SQL鏍囧噯涓紝璇ラ殧紱葷駭鍒秷闄や簡涓嶅彲閲嶅璇伙紝浣嗘槸榪樺瓨鍦ㄥ夠璞¤
4銆佷覆琛岃(Serializable)
鐩磋瘧灝辨槸"搴忓垪鍖?,鎰忔濇槸璇磋繖涓簨鍔℃墽琛岀殑鏃跺欎笉鍏佽鍒殑浜嬪姟騫跺彂鎵ц. 瀹屽叏涓茶鍖栫殑璇伙紝姣忔璇婚兘闇瑕佽幏寰楄〃綰у叡浜攣錛岃鍐欑浉浜掗兘浼氶樆濉?/p>
鍥涳紝闅旂綰у埆瀵瑰茍鍙戠殑鎺у埗
涓嬭〃鏄悇闅旂綰у埆瀵瑰悇縐嶅紓甯哥殑鎺у埗鑳藉姏銆?/p>
LU涓㈠け鏇存柊 | DR鑴忚 | NRR闈為噸澶嶈 | SLU浜岀被涓㈠け鏇存柊 | PR騫誨儚璇?/td> | |
鏈彁浜よ RU | Y | Y | Y | Y | Y |
鎻愪氦璇?RC | N | N | Y | Y | Y |
鍙噸澶嶈 RR | N | N | N | N | Y |
涓茶璇?S | N | N | N | N | N |
欏轟究涓句竴灝忎緥銆?/p>
MS_SQL:
--浜嬪姟涓
set transaction isolation level serializable
begin tran
insert into test values('xxx')
--浜嬪姟浜?nbsp;
set transaction isolation level read committed
begin tran
select * from test
--浜嬪姟涓?nbsp;
set transaction isolation level read uncommitted
begin tran
select * from test
鍦ㄦ煡璇㈠垎鏋愬櫒涓墽琛屼簨鍔′竴鍚庯紝鍒嗗埆鎵ц浜嬪姟浜岋紝鍜屼笁銆傜粨鏋滄槸浜嬪姟浜屼細絳夊緟錛岃屼簨鍔′笁鍒欎細鎵ц銆?/p>
ORACLE錛?nbsp;
--浜嬪姟涓
set transaction isolation level serializable;
insert into test values('xxx');
select * from test;
--浜嬪姟浜?nbsp;
set transaction isolation level read committed--ORACLE榛樿綰у埆
select * from test
鎵ц浜嬪姟涓鍚庯紝鎵ц浜嬪姟浜屻傜粨鏋滄槸浜嬪姟浜屽彧璇誨嚭鍘熸湁鐨勬暟鎹紝鏃犺浜嬪姟涓鐨勬彃鍏ユ搷浣溿?/p>
MYSQL
鏌ョ湅InnoDB緋葷粺綰у埆鐨勪簨鍔¢殧紱葷駭鍒細
浠ヤ笅涓哄紩鐢ㄧ殑鍐呭錛?nbsp;
mysql> SELECT @@global.tx_isolation;
+-----------------------+
| @@global.tx_isolation |
+-----------------------+
| REPEATABLE-READ銆銆銆|
+-----------------------+
1 row in set (0.00 sec)
鏌ョ湅InnoDB浼氳瘽綰у埆鐨勪簨鍔¢殧紱葷駭鍒細
浠ヤ笅涓哄紩鐢ㄧ殑鍐呭錛?nbsp;
mysql> SELECT @@tx_isolation;
+-----------------+
| @@tx_isolation銆|
+-----------------+
| REPEATABLE-READ |
+-----------------+
1 row in set (0.00 sec)
淇敼浜嬪姟闅旂綰у埆錛?nbsp;
浠ヤ笅涓哄紩鐢ㄧ殑鍐呭錛?nbsp;
銆銆mysql> set global transaction isolation level read committed;
銆銆Query OK, 0 rows affected (0.00 sec)
銆銆mysql> set session transaction isolation level read committed;
銆銆Query OK, 0 rows affected (0.00 sec)
InnoDB鐨勫彲閲嶅璇婚殧紱葷駭鍒拰鍏朵粬鏁版嵁搴撶殑鍙噸澶嶈鏄湁鍖哄埆鐨勶紝涓嶄細閫犳垚騫昏薄璇伙紙phantom read錛夛紝鎵璋撳夠璞¤錛屽氨鏄悓涓涓簨鍔″唴錛屽嬈elect錛屽彲浠ヨ鍙栧埌鍏朵粬session insert騫跺凡緇廲ommit鐨勬暟鎹備笅闈㈡槸涓涓皬鐨勬祴璇曪紝璇佹槑InnoDB鐨勫彲閲嶅璇婚殧紱葷駭鍒笉浼氶犳垚騫昏薄璇匯傛祴璇曟秹鍙婁袱涓猻ession錛屽垎鍒負 session 1鍜宻ession 2錛岄殧紱葷駭鍒兘鏄痳epeateable read錛屽叧闂璦utocommit
浠ヤ笅涓哄紩鐢ㄧ殑鍐呭錛?nbsp;
mysql> select @@tx_isolation;
+-----------------+
| @@tx_isolation銆|
+-----------------+
| REPEATABLE-READ |
+-----------------+
1 row in set (0.00 sec)
銆銆mysql> set autocommit=off;
銆銆Query OK, 0 rows affected (0.00 sec)
銆銆session 1 鍒涘緩琛ㄥ茍鎻掑叆嫻嬭瘯鏁版嵁
銆銆mysql> create table test(i int) engine=innodb;
銆銆Query OK, 0 rows affected (0.00 sec)
銆銆mysql> insert into test values(1);
銆銆Query OK, 1 row affected (0.00 sec)
銆銆session 2 鏌ヨ錛屾病鏈夋暟鎹紝姝e父錛宻ession1娌℃湁鎻愪氦錛屼笉鍏佽鑴忚
銆銆mysql> select * from test;
銆銆Empty set (0.00 sec)
銆銆session 1 鎻愪氦浜嬪姟
銆銆mysql> commit;
銆銆Query OK, 0 rows affected (0.00 sec)
銆銆session 2 鏌ヨ錛岃繕鏄病鏈夋暟鎹紝娌℃湁浜х敓騫昏薄璇?nbsp;
銆銆mysql> select * from test;
銆銆Empty set (0.00 sec)
浠ヤ笂璇曢獙鐗堟湰錛?nbsp;
mysql> select version();
+-------------------------+
| version()銆銆銆銆銆銆銆|
+-------------------------+
| 5.0.37-community-nt-log |
+-------------------------+
1 row in set (0.00 sec)
浜斻佸茍鍙戜竴鑷存ч棶棰樼殑瑙e喅鍔炴硶
1 灝侀攣錛圠ocking錛?nbsp;
灝侀攣鏄疄鐜板茍鍙戞帶鍒剁殑涓涓潪甯擱噸瑕佺殑鎶鏈傛墍璋撳皝閿佸氨鏄簨鍔鍦ㄥ鏌愪釜鏁版嵁瀵硅薄渚嬪琛ㄣ佽褰曠瓑鎿嶄綔涔嬪墠錛屽厛鍚戠郴緇熷彂鍑鴻姹傦紝瀵瑰叾鍔犻攣銆傚姞閿佸悗浜嬪姟T灝卞璇?鏁版嵁瀵硅薄鏈変簡涓瀹氱殑鎺у埗錛屽湪浜嬪姟T閲婃斁瀹冪殑閿佷箣鍓嶏紝鍏跺畠鐨勪簨鍔′笉鑳芥洿鏂版鏁版嵁瀵硅薄銆?鍩烘湰鐨勫皝閿佺被鍨嬫湁涓ょ錛氭帓瀹冮攣錛圗xclusive locks 綆璁頒負X閿侊級鍜屽叡浜攣錛圫hare locks 綆璁頒負S閿侊級銆?nbsp;
鎺掑畠閿佸張縐頒負鍐欓攣銆傝嫢浜嬪姟T瀵規暟鎹璞鍔犱笂X閿侊紝鍒欏彧鍏佽T璇誨彇鍜屼慨鏀笰錛屽叾瀹冧換浣曚簨鍔¢兘涓嶈兘鍐嶅A鍔犱換浣曠被鍨嬬殑閿侊紝鐩村埌T閲婃斁A涓婄殑閿併傝繖灝變繚璇佷簡鍏跺畠浜嬪姟鍦═閲婃斁A涓婄殑閿佷箣鍓嶄笉鑳藉啀璇誨彇鍜屼慨鏀笰銆?nbsp;
鍏變韓閿佸張縐頒負璇婚攣銆傝嫢浜嬪姟T瀵規暟鎹璞鍔犱笂S閿侊紝鍒欏叾瀹冧簨鍔″彧鑳藉啀瀵笰鍔燬閿侊紝鑰屼笉鑳藉姞X閿侊紝鐩村埌T閲婃斁A涓婄殑S閿併傝繖灝變繚璇佷簡鍏跺畠浜嬪姟鍙互璇籄錛屼絾鍦═閲婃斁A涓婄殑S閿佷箣鍓嶄笉鑳藉A鍋氫換浣曚慨鏀廣?nbsp;
2 灝侀攣鍗忚
鍦?榪愮敤X閿佸拰S閿佽繖涓ょ鍩烘湰灝侀攣錛屽鏁版嵁瀵硅薄鍔犻攣鏃訛紝榪橀渶瑕佺害瀹氫竴浜涜鍒欙紝渚嬪搴斾綍鏃剁敵璇稾閿佹垨S閿併佹寔閿佹椂闂淬佷綍鏃墮噴鏀劇瓑銆傛垜浠О榪欎簺瑙勫垯涓哄皝閿佸崗璁?錛圠ocking Protocol錛夈傚灝侀攣鏂瑰紡瑙勫畾涓嶅悓鐨勮鍒欙紝灝卞艦鎴愪簡鍚勭涓嶅悓鐨勫皝閿佸崗璁備笅闈粙緇嶄笁綰у皝閿佸崗璁備笁綰у皝閿佸崗璁垎鍒湪涓嶅悓紼嬪害涓婅В鍐充簡涓㈠け鐨勪慨鏀廣佷笉 鍙噸澶嶈鍜岃"鑴?鏁版嵁絳変笉涓鑷存ч棶棰橈紝涓哄茍鍙戞搷浣滅殑姝g‘璋冨害鎻愪緵涓瀹氱殑淇濊瘉銆備笅闈㈠彧緇欏嚭涓夌駭灝侀攣鍗忚鐨勫畾涔夛紝涓嶅啀鍋氳繃澶氭帰璁ㄣ?nbsp;
1 綰у皝閿佸崗璁槸錛氫簨鍔鍦ㄤ慨鏀規暟鎹甊涔嬪墠蹇呴』鍏堝鍏跺姞X閿侊紝鐩村埌浜嬪姟緇撴潫鎵嶉噴鏀俱備簨鍔$粨鏉熷寘鎷甯哥粨鏉燂紙COMMIT錛夊拰闈炴甯哥粨鏉燂紙ROLLBACK錛夈?1綰у皝閿佸崗璁彲闃叉涓㈠け淇敼錛屽茍淇濊瘉浜嬪姟T鏄彲鎭㈠鐨勩傚湪1綰у皝閿佸崗璁腑錛屽鏋滀粎浠呮槸璇繪暟鎹笉瀵瑰叾榪涜淇敼錛屾槸涓嶉渶瑕佸姞閿佺殑錛屾墍浠ュ畠涓嶈兘淇濊瘉鍙噸澶嶈鍜屼笉 璇?鑴?鏁版嵁銆?nbsp;
2綰у皝閿佸崗璁槸錛?綰у皝閿佸崗璁姞涓婁簨鍔鍦ㄨ鍙栨暟鎹甊涔嬪墠蹇呴』鍏堝鍏跺姞S閿侊紝璇誨畬鍚庡嵆鍙噴鏀維閿併?綰у皝閿佸崗璁櫎闃叉浜嗕涪澶變慨鏀癸紝榪樺彲榪涗竴姝ラ槻姝㈣"鑴?鏁版嵁銆?nbsp;
3綰у皝閿佸崗璁槸錛?綰у皝閿佸崗璁姞涓婁簨鍔鍦ㄨ鍙栨暟鎹甊涔嬪墠蹇呴』鍏堝鍏跺姞S閿侊紝鐩村埌浜嬪姟緇撴潫鎵嶉噴鏀俱?綰у皝閿佸崗璁櫎闃叉浜嗕涪澶變慨鏀瑰拰涓嶈'鑴?鏁版嵁澶栵紝榪樿繘涓姝ラ槻姝簡涓嶅彲閲嶅璇匯?nbsp;
鍏佷竴鑸鐞嗗茍鍙戦棶棰樻椂鐨勬楠わ細
1銆佸紑鍚簨鍔°?nbsp;
2銆佺敵璇峰啓鏉冮檺錛屼篃灝辨槸緇欏璞?琛ㄦ垨璁板綍)鍔犻攣銆?nbsp;
3銆佸亣濡傚け璐ワ紝鍒欑粨鏉熶簨鍔★紝榪囦竴浼氶噸璇曘?nbsp;
4銆佸亣濡傛垚鍔燂紝涔熷氨鏄粰瀵硅薄鍔犻攣鎴愬姛錛岄槻姝㈠叾浠栫敤鎴峰啀鐢ㄥ悓鏍風殑鏂瑰紡鎵撳紑銆?nbsp;
5銆佽繘琛岀紪杈戞搷浣溿?nbsp;
6銆佸啓鍏ユ墍榪涜鐨勭紪杈戠粨鏋溿?nbsp;
7銆佸亣濡傚啓鍏ユ垚鍔燂紝鍒欐彁浜や簨鍔?瀹屾垚鎿嶄綔銆?nbsp;
8銆佸亣濡傚啓鍏ュけ璐ワ紝鍒欏洖婊氫簨鍔★紝鍙栨秷鎻愪氦銆?nbsp;
9銆?7.8)涓ゆ鎿嶄綔宸查噴鏀句簡閿佸畾鐨勫璞★紝鎭㈠鍒版搷浣滃墠鐨勭姸鎬併?br />
杞嚜錛?a >http://www.cnblogs.com/tqsummer/archive/2010/07/11/1775209.html