而第二種情況之前有一種很簡單粗暴的解決辦法,就是加鎖但是這樣的效率很低,而mvcc機(jī)制則是將表中每次更改的記錄都保存下來,如果有多個用戶進(jìn)行讀寫操作,那么讀數(shù)據(jù)的用戶所看到的只會是歷史數(shù)據(jù)。執(zhí)行寫操作的用戶只要事務(wù)沒有提交,在事務(wù)中所執(zhí)行的變更對于其他用戶來說都是不可見的。
讀未提交 Read uncommitted
這個級別可能會遇到一個問題“臟讀”,就是a事務(wù)中讀取到了b事務(wù)中更改的數(shù)據(jù),此時b事務(wù)回滾a事務(wù)讀到的數(shù)據(jù)最終未被更改。而a事務(wù)后續(xù)所有基于這個數(shù)據(jù)的操作都是錯誤的。這個就是臟讀。
讀已提交 Read committed
舉個例子a事務(wù)有兩個查詢x表的數(shù)據(jù),第一次查詢值為1。此時b事務(wù)執(zhí)行update修改x表值為2。a事務(wù)的第二個查詢的值就是2。
讀可重復(fù) Repeatable read
舉個例子a事務(wù)有兩個查詢x表的數(shù)據(jù),第一次查詢值為1。此時b事務(wù)執(zhí)行update修改x表值為2。a事務(wù)的第二個查詢的值還是1。明明已經(jīng)被修改但是查詢的結(jié)果還是未修改的的值,類似這樣的結(jié)果就是幻讀。(在gp中此隔離級別不會出現(xiàn)幻讀)
序列化 Serializable
在greenplum中每一行數(shù)據(jù),有4個隱藏字段。雖然這四個字段是隱藏的,但可以訪問。
cmin和cmax :標(biāo)識在同一個事務(wù)中多個語句命令的序列值,從0開始,用于同一個事務(wù)中實現(xiàn)版本可見性判斷。
建表:
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/129407.html
Pgsql表膨脹的產(chǎn)生及處理 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; marg...
聊聊PostgreSQL事務(wù)id那點事 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...
PostgreSQL鎖淺析 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; margi...
摘要:三年百度,五年阿里,阿里架構(gòu)師淺談我是如何順利進(jìn)入前些天在我群里認(rèn)識了以為挺有意思的老哥,他也是工作年多技術(shù)和面試都不差,最近也是在找工作,是從京城來魔都的,也和他撈了不少。 說來慚愧,也不怕你們笑話。做開發(fā)8年多,到目前還是一名不折不扣的掃地僧。年前的辭職,到現(xiàn)在還在家靜養(yǎng)中。其實也沒什么,就是回家總結(jié)一下自己這些年來在外工作與面試等做一個簡單的總結(jié)與反思。做一下自己后面一個人生規(guī)劃...
摘要:小明馬上開發(fā)完畢,成功上線。下班過后,小明回想大紅說的話,什么是間隙鎖,什么是插入意向鎖,看來作為開發(fā)者對數(shù)據(jù)庫不應(yīng)該只會寫啊,不然遇到一些疑難雜癥完全沒法解決啊。破壞了數(shù)據(jù)庫中的隔離性。 1.鎖? 1.1何為鎖 鎖在現(xiàn)實中的意義為:封閉的器物,以鑰匙或暗碼開啟。在計算機(jī)中的鎖一般用來管理對共享資源的并發(fā)訪問,比如我們java同學(xué)熟悉的Lock,synchronized等都是我們常見的...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20