千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 如何理解SQL的可重復讀和幻讀之間的區別?

如何理解SQL的可重復讀和幻讀之間的區別?

來源:千鋒教育
發布人:xqq
時間: 2023-10-13 05:20:52 1697145652

一、如何理解SQL的可重復讀和幻讀之間的區別

不可重復讀:事務 A 多次讀取同一數據,事務 B 在事務A多次讀取的過程中,對數據作了更新并提交,導致事務A多次讀取同一數據時,結果不一致。

幻讀:系統管理員A將數據庫中所有學生的成績從具體分數改為ABCDE等級,但是系統管理員B就在這個時候插入了一條具體分數的記錄,當系統管理員A改結束后發現還有一條記錄沒有改過來,就好像發生了幻覺一樣,這就叫幻讀。

小結:兩者的共同點是:拿到某一時刻的數據,比如T1到T2的時間段中,我只能看到T1時刻的數據。

兩者的不同點是:運用場景不同,解決方式不同。前者是在一致性讀場景下,通過事務開始的時候聲明一致性視圖實現的;后者是在當前讀場景下,通過加間隙鎖的方式實現“防止幻讀”的。

比如,在備份數據庫的時候,需要拿到所有表在某一時刻的數據,需要的是可重復讀。

可重復度隔離級別下,在事務開始的時候,就確定了一個視圖,之后的數據改動對其不可見,從而達到可重讀的效果,這個我們稱為一致性讀。

但是在進行select for update這種當前讀的時候,視圖就不起作用了,意味著在兩次查詢中,如果有人插入數據,那么兩次讀取結果不一致,這就是幻讀,解決方法就是通過加間隙鎖來防止幻讀。

不可重復讀的和幻讀很容易混淆,不可重復讀側重于修改,幻讀側重于新增或刪除。解決不可重復讀的問題只需鎖住滿足條件的行,解決幻讀需要鎖表。

延伸閱讀:

二、Vertica是什么

Vertica是一款基于列存儲的MPP(massively parallel processing)架構的數據庫。

它可以支持存放多至PB(Petabyte)級別的結構化數據。Vertica是由關系數據庫大師Michael Stonebraker(2014 年圖靈獎獲得者)所創建,于2011年被惠普收購并成為其核心大數據平臺軟件。Vertica 采用無共享的MPP 架構,基于工業標準的x86 服務器,擁有高可擴展性。Vertica 集群中的所有節點100%對等,集群中沒有主節點或其他共享資源。通過增加節點,就可以線性地擴展集群的計算能力和數據處理容量。Vertica 是真正的純列式數據庫,優化器和執行引擎可以忽略表中與查詢無關的列。Vertica 不僅僅按列式存儲數據,還主動地根據列數據的特點和查詢的要求選用優異的算法對數據進行排序和編碼壓縮,這就極大地降低磁盤I/O 消耗。同時,Vertica 的執行引擎和優化器也是基于列式數據庫設計的,編碼壓縮過的列數據在Vertica 的執行引擎中進行過濾、關聯、分組等操作時不需要解反編碼,從而大大降低了CPU 和內存消耗。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
亚洲少妇综合一区 | 日本中文一二区有码在线 | 色综合久久综合香蕉色老大 | 中文字幕成人乱码视频在线 | 在线a亚洲v天堂网 | 亚洲精品专区在线观看 |