Mysql 事務管理
阿新 • • 發佈:2020-07-10
Mysql 和其它的資料庫產品有一個很大的不同就是事務由儲存引擎所決定,例如 MYISAM,MEMORY,ARCHIVE 都不支援事務,事務就是為了解決一組查詢要麼全部執行成功,要麼全部執行失敗。
Mysql 事務預設是採取自動提交的模式,除非顯示開始一個事務
MariaDB [(none)]> show variables like 'autocommit'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | autocommit | ON | +---------------+-------+ 1 row in set (0.00 sec)
修改自動提交模式:0=OFF,1=ON
注意:修改自動提交對非事務型別的表是無效的,因為它們本身就沒有提交和回滾的概念,還有一些命令是會強制自動提交的,比如DLL命令、lock tables等。
SET AUTOCOMMIT=OFF
或
SET AUTOCOMMIT=0
事務的 ACID 特性:原子性,一致性,隔離性,永續性。
原子性:事務是不可分割的最小工作單元,整個事務要麼全部提交要麼全部回滾失敗。
一致性:資料庫總是從一個一致性狀態轉換到另一個一致性的狀態。
隔離性: 一個事務所做的更改在最終提交之前其它事務是不可見的。
永續性:事務一旦提交所做的修改就會永久儲存在資料庫中,即使系統崩潰,資料也不會丟失。