MySQL 事務的四大特性ACID介紹


事務的四大特性(ACID)
1、原子性(Atomicity)
事務是一個不可分割的單位,事務中的所有SQL等操作要么都發生,要么都不發生。
2、一致性(Consistency)
事務發生前和發生后,數據的完整性必須保持一致。
3、隔離性(Isolation)
當並發訪問數據庫時,一個正在執行的事務在執行完畢前,對應其他的會話是不可見的,多個並發事務之間的數據是相互隔離的。備份的參數 --single-transaction
4、持久性(Durability)
一個事務一旦被提交,它對數據庫中的數據改變就是永久性的。如果出了錯誤,事務也不允許撤銷,只能通過“補償性事務”
 
事務的開啟:
數據庫默認事務是自動提交的,也就是發一條SQL它就執行一條。如果想多條SQL放在一個事務中執行,則續愛使用事務進行處理。當我們開啟一個事務,並且沒有提交,mysql會自動回滾事務。或者我們使用rollback命令手動回滾事務。
數據庫開啟事務命令:
MySQL默認是自動提交的,也就是你提交一個QUERY,它就直接執行!我們可以提供
mysql> show variables like "%autocommit%";            ##查看MySQL事務狀態
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | ON    |
+---------------+-------+
1 row in set (0.00 sec)
 
set global autocommit=OFF    禁止自動提交事務
mysql> set autocommit=0;   ##關閉自動提交事務
Query OK, 0 rows affected (0.00 sec)
 
mysql> show variables like "%autocommit%";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | OFF   |
+---------------+-------+
1 row in set (0.00 sec)
 
mysql> set autocommit=1;    ##設置開啟自動提交事務
Query OK, 0 rows affected (0.00 sec)
 
mysql> show variables like "%autocommit%";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit    | ON    |
+---------------+-------+
1 row in set (0.00 sec)
 
set autocommit=1   ##開啟自動提交,0關閉
rollback    ##回滾事務
commit     ##提交事務
提示:事務引擎基於表的,所以要在表上插入、更新測試事務的特性。
 
innodb_flush_log_at-trx_commit = 1   ##
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM