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!

推薦閱讀: