node.js - nodejs 多執行緒 如何解決資料一致的問題
ringa_lee
ringa_lee 2017-06-05 11:12:48
0
1
591

試想有這麼一幕。例如一張 test表,裡面有欄位

count:0
name:'abc'

當使用者開啟一個編輯介面的時候,從資料庫裡面讀取的資料是

count:3
name:'abc'

然後他改了一個name,變成了這樣

count:3
name:'efg'

此時此刻,這個test表,其他程式在高速的讀寫。因為使用者還沒儲存資料到資料表,其他程式儲存的資料就是

count:40
name:'abc'

不斷的改變count字段,變成41、42、43,此時使用者修改完畢,儲存資料到資料庫,此時儲存的最終資料是

count:3
name:'efg'

然後問題就出來了。 。 。 count字段資料有問題了。

如何解決這個問題?

1、要嘛把count欄位分開到另外一個表,然後兩個表關聯起來,互不干擾。不過這樣數據讀的時候需要讀兩個表,有點麻煩了。

2、用戶儲存資料的時候,只更新必要的欄位。例如count字段從資料庫讀取舊的。不過當資料表有幾十個欄位的時候,這樣,程式略顯煩瑣。

請問你們是如何解決的?

ringa_lee
ringa_lee

ringa_lee

全部回覆(1)
Peter_Zhu

典型的事務問題。

你用的什麼資料庫?學過事務嗎?去學你使用的資料庫如何支援事務的。

簡單說就是:給資料加鎖,使同一時間只能有一個client做讀寫操作,其它client都得等。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板