2010-07-28 54 views
0

這只是爲了我自己瞭解併發性問題的工作原理。比方說,我有一個插入語句與選擇查詢同時運行。如果在select查詢仍在運行時發生insert語句,select select查詢會顯示衝突,因爲要選擇的行數已更改?插入查詢只能對選擇查詢導致併發問題?

或者是當行編輯只能出現的併發衝突,使得插入語句完全無害的(在併發衝突而言)?

回答

0

的wikipeida文章,這是相當不錯的:

Concurrency Control

但基本上併發問題發生隨時隨地的數據,一個事務正在使用被另一事務更改。

因此可以說我從數據庫中獲得了前100行。其他人對第5行進行了更改。然後,我嘗試根據讀取的內容更改第5行。

或插入案例。

比方說,我把所有的孩子在一所學校,並想弄清楚有多少與A開始。然後有人將10多個孩子開始A.這是一個併發問題的名字。

你可以有壞的東西從導致事情發生,你沒有想到要在數據庫中插入發生。

例如:

約翰欠$ 1000的平衡,他來到網上支付他的賬單,在這段時間內的交易情況,導致他欠了另外$ 100(插入)(共$ 1100)。他支付了$ 1000全觸發東西,他所有的欠款餘額設置爲0(他付的是我們拿到了所有的人,所以我們說啊,讓我們剛剛成立的一切爲0)。這筆100美元的交易現在已被清除,但實際上並沒有支付。