Mysql:交易管理——未完待續

來源:互聯網
上載者:User

邏輯交易管理    --基本上應用於innodb引擎

  • begin [work]    start transaction [with consistent snapshot]
  • commit [work]     [and [no] chain] [[no] release]
  • rollback [work]    [and [no] chain] [[no] release]
  • set autocommit = {1(預設)|0}

mysql的交易管理有一定的模式

  • completion_type系統變數決定一個事務完成後應該做什麼的行為模式
  • autocommit系統變數決定事務完成後是否自動認可!
  • 在儲存程式內:begin [work] 當作簡單的begin end 塊的begin,而不是事務的開始。如果要開始事務應該使用start transaction
  • mysql的client api 通常有自己的開始事務的表達形式
  • 開始事務會造成完成掛起的事務隱式commit;同時也會使之前使用lock tables語句擷取的“表鎖”自動釋放,如同執行unlock tables;但不會釋放flush tables with read lock 獲得的“全域讀鎖”
  • mysql的許多語句(一般是ddl語句:{create|drop} database、{create|alter|drop} {tables|routines}),在事務裡不要包含此類語句,否則rollback失敗
  • mysql的許多語句會造成事務的隱式commit,如:ddl語句、dcl語句、檔案系統相關語句、交易管理語句等等

 

事務savepoint

  • savepoint svp_name    --如果新的 事務儲存點的名稱和已有的same,則會覆蓋舊的
  • rollback [work] to [savepoint] svp_name    --交易回復到指定的儲存點
  • release savepoint svp_name    刪除定義的事務儲存點。注意不會引起事務的commit或rollback

表鎖

  • lock tables {table_name [[as] alias] {read [lock]  |  [low_priority] wirte}} [,...]
  • unlock tables

交易隔離等級
set [global | session(預設)] transaction isolation level { read uncommitted | read committed | repeatable read | serializable }

xa事務

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.