1. 程式人生 > >鎖表原因及解決思路

鎖表原因及解決思路

data- 操作數 -m mit sdn 事物 i/o 之間 art

1、鎖表發生在insert update 、delete 中
2、鎖表的原理是 數據庫使用獨占式封鎖機制,當執行上面的語句時,對表進行鎖住,直到發生commite 或者 回滾 或者退出數據庫用戶
3、鎖表的原因
第一、 A程序執行了對 tableA 的 insert ,並還未 commite時,B程序也對tableA 進行insert 則此時會發生資源正忙的異常 就是鎖表
第二、鎖表常發生於並發而不是並行(並行時,一個線程操作數據庫時,另一個線程是不能操作數據庫的,cpu 和i/o 分配原則)
4、減少鎖表的概率,
1》減少insert 、update 、delete 語句執行 到 commite 之間的時間。具體點批量執行改為單個執行、優化sql自身的非執行速度
2》如果異常對事物進行回滾

鎖表原因及解決思路