事務的概念:
指邏輯上的一組操作,要麼全部成功,要麼全部失敗。
資料庫開啟事務命令:
start transaction開啟事務
rollback回滾事務
commit提交事務
事務的特性:
原子性:是乙個不可分割的工作單位,操作要麼都發生,要麼都不發生
一致性:事務必須使資料庫從乙個一致性狀態換到另乙個一致性狀態(能量守恆)
隔離性:多個使用者併發訪問資料庫,資料庫為每乙個使用者開啟事務處理,多個併發事務互不干擾,相互隔離
永續性:乙個事物一旦被提交,它對資料庫中資料的改變是永久性的,接下來即使資料庫發生故障,也不應該對其有任何影響
事務隔離的級別:
贓讀:乙個事務讀取了另乙個事務未提交的資料
不可重複讀:在乙個事務內讀取資料表中的某一行資料,多次讀取結果不同
虛讀(幻讀):乙個事物讀取的別的事務的插入語句,導致讀取前後結果不一致
資料庫設定事務隔離級別:
read uncommitted:贓讀、不可重複讀、虛讀都有可能發生
read commited:避免贓讀(orcal預設)
repeatable read:避免贓讀、不可重複讀(mysql預設)
serializable:避免贓讀、不可重複讀、虛讀
注意:設定隔離級別必須在事務之前
事務與連線池
開啟事務 start transaction begin 提交事務 commit 回滾事務 rollback public void insert user user catch sqlexception e catch sqlexception e1 finally 原子性 指事務是乙個不可分割的...
mysql連線池 順序 Mysql 連線池
通常,如果我們的服務涉及到mysql的操作,當乙個新的請求進來的時候,可以先連線mysql,使用完之後再斷開連線即可。但這樣做有個弊端,當請求量巨大時,會在瞬間有大量的資料庫連線與斷開操作,這是非常影響 mysql 效能的做法。此時,我們就需要使用mysql連線池。在 python 服務中使用 my...
事務,Properties,dbcp連線池
preparedstatement properties dbcp連線池 事務是為了解決sql語句執行出問題的情況,比如張三需要給王五轉500元錢,需要完成張三的餘額減500,王五的餘額加500,sql執行完張三的更新操作後出現了異常,就不會再繼續執行sql,王五的餘額不會增加,最終的結果為張三減少...