趙渝強老師 資料庫的事務

2022-09-17 17:21:12 字數 1443 閱讀 1263

一、什麼是事務?

資料庫事務(transaction)是訪問並可能操作各種資料項的乙個資料庫操作序列,這些操作要麼全部執行,要麼全部不執行,是乙個不可分割的工作單位。事務由事務開始與事務結束之間執行的全部資料庫操作組成。

例如:從a賬號給b賬號轉帳,對應於如下兩條sql語句

update

from account set

money

=money

+100

where name=

『b』;

update

from account set

money

=money

-100

where name=『a』;

這兩條update語句應該作為乙個整體來執行,要保證同時成功,或者同時失敗;不應該存在乙個成功,乙個失敗的情況。

二、資料庫開啟事務命令

我們可以使用下面的語句來開啟或者結束乙個事務。

例如,我們可以把上面的銀行轉賬的update語句放到乙個事務中執行。

start transaction

;update

from account set

money

=money

+100

where name=

『b』;

update

from account set

money

=money

-100

where name=

『a』;

commit;

三、事務的特徵:acid四、事務的隔離級別多個執行緒開啟各自事務運算元據庫中資料時,資料庫系統要負責隔離操作,以保證各個執行緒在獲取資料時的準確性。

如果不考慮隔離性,可能會引發如下問題:

資料庫共定義了四種隔離級別:

我們可以可以通過下面的語句來檢視mysql的事務隔離級別和設定隔離級別:

下面的語句將檢視mysql資料庫當前的事務隔離級別。

下面的語句將mysql的事務隔離級別設定成read committed,在這種隔離級別下,將會發生髒讀的問題。

趙渝強老師 什麼是Redis Cluster

redis cluster是redis的分布式解決方案,在redis 3.0版本正式推出的,有效解決了redis分布式方面的需求。當遇到單機記憶體 併發 流量等瓶頸時,可以採用cluster架構達到負載均衡的目的。我們日常在對於redis的使用中,經常會遇到一些問題 1 高可用問題,如何保證redi...

趙渝強老師 Kafka的持久化

kakfa 依賴檔案系統來儲存和快取訊息。對於硬碟的傳統觀念是硬碟總是很慢,基於檔案系統的架構能否提供優異的效能?實際上硬碟的快慢完全取決於使用方式。同時 kafka 基於 jvm 記憶體有以下缺點 實際上磁碟線性寫入的效能遠遠大於任意位置寫的效能,線性讀寫由作業系統進行了大量優化 read ahe...

趙渝強老師 Kafka的體系架構

資料工程中最具挑戰性的部分之一是如何從不同點收集和傳輸大量資料到分布式系統進行處理和分析。需要通過訊息佇列正確地分離大量資料,因為如果一部分資料無法傳送,則可以在系統恢復時傳輸和分析其他資料。有兩種訊息排隊,對於上述目的,它們都是可靠的和非同步的。點對點 point to point 和發布者 訂閱...