mysql事務對效率的影響分析總結
1、數據庫事務會降低數據庫的性能。為瞭保證數據的一致性和隔離性,事務需要鎖定事務。
2、如果其他事務需要操作這部分數據,必須等待最後一個事務結束(提交,回滾)。
實例
create table acct( acct_no varchar(32), acct_name varchar(32), balance decimal(16,2) ); insert into acct values ('0001','Jerry', 1000), ('0002','Tom', 2000); start transaction; -- 啟動事務 update acct set balance = balance - 100 where acct_no = '0001'; -- 模擬扣款人 update acct set balance = balance + 100 where acct_no = '0002'; -- 模擬收款人 commit; -- 事務提交 rollback; -- 事務回滾
知識點擴展:
事務
- 原子性:整個事務的所有操作要麼全部提交成功,要麼全部失敗回滾
- 一致性:指事務將數據庫從一種一致性狀態轉換到另外一種一致性狀態,在事務開始之前和事務結束後數據庫中的完整性沒有被破壞
- 隔離性:要求一個事務對數據庫中數據修改,在未提交完成前對其他事務是不可見的
- 持久性:一旦事務提交,則其所做的修改就會永久保存到數據庫中。此時即使系統崩潰,已經提交的修改數據也不會丟失。
大事務
運行時間比較長,操作的數據比較多的事務
- 鎖定太多的數據,造成大量的阻塞和鎖超時
- 回滾時所需時間比較長
- 執行時間長,容易造成主從延遲
如何處理大事務:
- 避免一次處理太多的數據
- 移出不必要在事務中的select操作
到此這篇關於mysql事務對效率的影響分析總結的文章就介紹到這瞭,更多相關mysql事務對效率的影響內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!