MySQL中的事務與連線池

2021-08-09 13:14:19 字數 672 閱讀 2915

事務的概念:

指邏輯上的一組操作,要麼全部成功,要麼全部失敗。

資料庫開啟事務命令:

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,王五的餘額不會增加,最終的結果為張三減少...