資料庫併發問題
如果沒有鎖定且多個使用者同時訪問一個資料庫,則當他們的事務同時使用相同的資料時可能會發生問題。併發問題包括:
丟失更新
當兩個或多個事務選擇同一行,然後基於最初選定的值更新該行時,會發生丟失更新問題。每個事務都不知道其它事務的存在。最後的更新將重寫由其它事務所做的更新,這將導致資料丟失。
例如,兩個編輯人員製作了同一文件的電子複本。每個編輯人員獨立地更改其複本,然後儲存更改後的複本,這樣就覆蓋了原始文件。最後儲存其更改複本的編輯人員覆蓋了第一個編輯人員所做的更改。如果在第一個編輯人員完成之後第二個編輯人員才能進行更改,則可以避免該問題。
未確認的相關性(髒讀)
當第二個事務選擇其它事務正在更新的行時,會發生未確認的相關性問題。第二個事務正在讀取的資料還沒有確認並且可能由更新此行的事務所更改。
例如,一個編輯人員正在更改電子文件。在更改過程中,另一個編輯人員複製了該文件(該複本包含到目前為止所做的全部更改)並將其分發給預期的使用者。此後,第一個編輯人員認為目前所做的更改是錯誤的,於是刪除了所做的編輯並儲存了文件。分發給使用者的文件包含不再存在的編輯內容,並且這些編輯內容應認為從未存在過。如果在第一個編輯人員確定最終更改前任何人都不能讀取更改的文件,則可以避免該問題。
不一致的分析(非重複讀)
當第二個事務多次訪問同一行而且每次讀取不同的資料時,會發生不一致的分析問題。不一致的分析與未確認的相關性類似,因為其它事務也是正在更改第二個事務正在讀取的資料。然而,在不一致的分析中,第二個事務讀取的資料是由已進行了更改的事務提交的。而且,不一致的分析涉及多次(兩次或更多)讀取同一行,而且每次資訊都由其它事務更改;因而該行被非重複讀取。
例如,一個編輯人員兩次讀取同一文件,但在兩次讀取之間,作者重寫了該文件。當編輯人員第二次讀取文件時,文件已更改。原始讀取不可重複。如果只有在作者全部完成編寫後編輯人員才可以讀取文件,則可以避免該問題。
幻像讀
當對某行執行插入或刪除操作,而該行屬於某個事務正在讀取的行的範圍時,會發生幻像讀問題。事務第一次讀的行範圍顯示出其中一行已不復存在於第二次讀或後續讀中,因為該行已被其它事務刪除。同樣,由於其它事務的插入操作,事務的第二次或後續讀顯示有一行已不存在於原始讀中。
例如,一個編輯人員更改作者提交的文件,但當生產部門將其更改內容合併到該文件的主複本時,發現作者已將未編輯的新材料新增到該文件中。如果在編輯人員和生產部門完成對原始文件的處理之前,任何人都不能將新材料新增到文件中,則可以避免該問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/310974/viewspace-987032/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 解決資料庫高併發訪問瓶頸問題資料庫
- 使用資料庫處理併發可能導致的問題資料庫
- 資料庫之事務、隔離級別和併發問題資料庫
- 資料庫事務 ACID屬性、資料庫併發問題和四種隔離級別資料庫
- 資料庫併發寫入問題-丟失更新與寫入偏差資料庫
- 【資料庫】併發控制資料庫
- 資料編號+1 併發問題解決
- [分散式]高併發案例---庫存超發問題分散式
- 【眼見為實】資料庫併發問題 封鎖協議 隔離級別資料庫協議
- 資料庫事務併發問題----各種事務隔離下的情況資料庫
- 資料庫事務併發產生的問題以及事務的隔離級別資料庫
- 資料庫常見問題資料庫
- openGauss資料庫分析問題資料庫
- 資料併發操作帶的的問題及解決辦法
- 遷移資料庫資料考慮問題資料庫
- 資料庫事物相關問題資料庫
- 資料庫索引分裂 問題分析資料庫索引
- 優步爆Go語言容易發生的資料併發爭奪問題Go
- 高併發下資料冪等問題的9種解決方案
- 資料庫併發如何讓資料操作序列化資料庫
- 併發問題處理方式
- Java之併發三問題Java
- 併發背後的問題
- Mysql資料庫許可權問題MySql資料庫
- [20200102]資料庫安裝問題.txt資料庫
- 資料庫系統原理-問題集合資料庫
- 如何解決資料庫配置問題資料庫
- 資料庫表規範化問題資料庫
- 資料庫高io問題調查資料庫
- SQL SERVER資料庫datediff函式引發的效能問題SQLServer資料庫函式
- Django ORM 引發的資料庫 N+1 效能問題DjangoORM資料庫
- 資料庫高併發解決方法總結資料庫
- 一個併發SQL資料庫卡主了SQL資料庫
- 資料庫系列:高併發下的資料欄位變更資料庫
- 做資料庫分離讀寫時,sqlServer資料庫資料同步的問題:資料庫SQLServer
- 解決hive資料庫 插入資料很慢的問題Hive資料庫
- MySQL資料庫開發常見問題及幾點優化!MySql資料庫優化
- iOS開發筆記— 資料庫、Crash、記憶體問題分析iOS筆記資料庫記憶體
- SQL Server 資料庫開發中的十大問題VYSQLServer資料庫