MySQL--事務(wù)

基本原理(必須是INNODB存儲引擎):將用戶所做操作暫時保存起來误算,不直接存到數(shù)據(jù)表秋泄,等到用戶確認結(jié)果之后香伴,再執(zhí)行操作我注。

事務(wù)處理圖解

事務(wù)在mysql重通常是自動提交的,但是也可以手動事務(wù)

自動事務(wù)(autocommit)

當(dāng)客戶端發(fā)送一條sql指令(寫操作舅柜,增刪改)給服務(wù)器執(zhí)行之后,不用等待用戶反饋結(jié)果躲惰,會自動同步到數(shù)據(jù)表致份。?

可以同構(gòu)哦autocommit

show variable like 'autocommit'

關(guān)閉之后就不會幫助用戶自動提交了:set autocommit off。

一旦關(guān)閉础拨,需要提供是否同步的命令

commit: 提交

rollback:回滾氮块,清空之前的操作

通常不會關(guān)閉自動事務(wù)绍载,只會在需要使用的時候才會進行操作。

手動事務(wù)

命令:

start transaction滔蝉;開啟事務(wù)击儡,從這條語句開始,后面所有語句都不會直接寫入到數(shù)據(jù)表(而是保存在事務(wù)日志中)

事務(wù)處理:多個寫指令構(gòu)成

事務(wù)提交:commit/rollback蝠引,到這個時候事務(wù)才結(jié)束阳谍。

開啟事務(wù):start transaction;

執(zhí)行事務(wù):

將多個連續(xù)但是一個整體的sql指令逐一執(zhí)行

將多個事務(wù)同時執(zhí)行

提交事務(wù):

確認提交:commit

回滾操作:rollback;

回滾點(savepoint):

當(dāng)有一系列事務(wù)操作是螃概,其中步驟成功了矫夯,不需要重新來過,就可以設(shè)置回滾蒂娜吊洼,后面如果失敗训貌,可以回滾到記號位置

增加回滾點:savepoint 回滾點名字;//字母和下滑線構(gòu)成

回到回滾點:rollback to ?回滾點名字; //回滾點之后的操作就沒有了

注意冒窍,在一個事務(wù)處理中递沪,有很多步驟,可以設(shè)置多個回滾點综液,但是如果回到前面的回滾點款慨,后面的回滾點就失效。

? ? 事務(wù)特點:

原子性(atomicity):事務(wù)是一個不可分割的工作單位意乓,事務(wù)中包括的諸多操作要么不做樱调,要么都做,事務(wù)從start transaction起到提交事務(wù)(commit|rollback)要么成功届良,要么失敗

一致性(consistency):事務(wù)必須是使數(shù)據(jù)庫從一個一直行狀態(tài)笆凌,變到另一個一致性狀態(tài),一致性與原子性是密切相關(guān)的士葫。數(shù)據(jù)表中的數(shù)據(jù)修改乞而,要么一次性修改,要么不變慢显。

隔離性(isolation):一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾爪模。即:一個事務(wù)內(nèi)部操作及使用 的數(shù)據(jù)對并發(fā)的其他事務(wù)是隔離的,并發(fā)執(zhí)行的各個事務(wù)之間不能相互干擾荚藻。如果一個客戶端屋灌,在使用事務(wù)操作一個數(shù)據(jù)(可能是一行/整個表)的時候,另一個客戶端不能對該數(shù)據(jù)進行操作

如果條件中使用了索引(主鍵)那么系統(tǒng)是根據(jù)主鍵直接找到某條記錄应狱,這時候共郭,與其他記錄無關(guān),只隔離一條數(shù)據(jù),如果沒有索引除嘹,系統(tǒng)是通過全表索引(每一條記錄都會去檢查被檢索的所有數(shù)據(jù)都會被鎖定(整表)

持久性(durability)/永久性(permanence):指一個事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的尉咕,接下來其他操作或故障不應(yīng)該對其有影響(commit之后,所有操作不可返回)


隔離性例子
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末悔捶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子晦款,更是在濱河造成了極大的恐慌炎功,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛇损,死亡現(xiàn)場離奇詭異,居然都是意外死亡淤齐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門袜匿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來更啄,“玉大人,你說我怎么就攤上這事居灯〖牢瘢” “怎么了怪嫌?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拌倍。 經(jīng)常有香客問我,道長柱恤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任梗顺,我火速辦了婚禮车摄,結(jié)果婚禮上寺谤,老公的妹妹穿的比我還像新娘。我一直安慰自己矗漾,他們只是感情好薄料,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著誊役,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蛔垢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天迫悠,我揣著相機與錄音,去河邊找鬼创泄。 笑死,一個胖子當(dāng)著我的面吹牛饭聚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播搁拙,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼秒梳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了箕速?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤婆跑,失蹤者是張志新(化名)和其女友劉穎庭呜,沒想到半個月后滑进,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體募谎,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年节槐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铜异。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖咆蒿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情沃测,我是刑警寧澤食茎,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站别渔,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏哎媚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一艘刚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧攀甚,春花似錦、人聲如沸秋度。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽查牌。三九已至,卻和暖如春纸颜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背胁孙。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工称鳞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留稠鼻,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓候齿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親毛肋。 傳聞我的和親對象是個殘疾皇子屋剑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 來源轉(zhuǎn)載自:http://www.cnblogs.com/ymy124/p/3718439.html MySQL的...
    Mrwangs閱讀 1,953評論 0 8
  • 在生活中唉匾,我們時常會遇到一系列連續(xù)不可中斷的事情。例如會計記賬時巍膘,有借必有貸,借貸必相等峡懈;又如從 ATM 取錢時,...
    Kerwong閱讀 1,363評論 0 4
  • MySQL 支持對 MyISAM 和 MEMORY 存儲引擎的表進行表級鎖定荚恶,對 BDB 存儲引擎的表進行頁級鎖定...
    微日月閱讀 1,308評論 0 1
  • 1雾狈、 數(shù)據(jù)庫事務(wù)的概念 在數(shù)據(jù)庫中,所謂事務(wù)是指一組邏輯操作單元,使數(shù)據(jù)從一種狀態(tài)變換到另一種狀態(tài)。 為確保數(shù)據(jù)庫...
    AKyS佐毅閱讀 296評論 0 2
  • MySQL 事務(wù)主要用于處理操作量大善榛,復(fù)雜度高的數(shù)據(jù)。在 MySQL 中只有使用了 Innodb 數(shù)據(jù)庫引擎的數(shù)據(jù)...
    LannisterWF閱讀 509評論 0 2