php - 資料庫主從事務裡面既有讀又有寫有什麼問題?
黄舟
黄舟 2017-05-16 13:06:14
0
1
540

是面試題,大意是資料庫採用了主從,如果一個事務裡面既有讀又有寫(讀和寫操作有多次),自己知道資料庫主從在同一進程內讀寫可能會有問題(因為寫是寫到主庫、讀讀的是從庫,同一個進程內有可能剛寫入的資料還沒有及時的同步到從庫),但是不太明白這個問題強調是在一個事務中會產生什麼新的問題,如果有的話如何解決?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆(1)
左手右手慢动作
  1. 你說的同一進程分別讀寫主從庫應該不是事務相關的問題吧?因為同一事務不支援跨庫的,據我所知沒有『主從事務』這一說,也許有,那是某些庫的實現,與資料庫無關。不管是不是同一進程,資料同步不及時的問題都可能出現。

  2. 一個事務既有讀又有寫沒什麼問題,你想想一個事務只能全是讀操作或全是寫操作合理嗎?問題在於這個情況下為了確保並發時資料的一致性,你需要用鎖,如悲觀鎖:保證當前事務正在讀取的資料不會被其它事務讀取,必須等到事務執行完成資料寫入後才能釋放鎖,否則會造成資料混亂。舉個例子:一個數字10,在沒有鎖的情況下兩個事務並行都讀取到10,並增加10後寫入,這時兩個事務寫入的都是20,而我們希望它應該是30 。我覺得這個面試題考你的應該是這個點。

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