介紹資料庫中的wal技術 預寫日誌 WAL 介紹

2021-10-17 02:53:13 字數 582 閱讀 5109

預寫日誌(wal,write ahead log)是關係型資料庫中用於實現事務性和永續性的一系列技術。簡單來說就是,做乙個操作之前先講這件事情記錄下來。

為什麼要使用wal呢?比如你的備忘錄裡面有如下記錄:

2015.12.25 理髮

2015.12.28 整容

2015.12.31 修指甲 (別亂想,博主並非女孩)

如果某一天你忘記了自己是如何變成現在這個樣子的,那你可以去翻看你的備忘錄,然後按照備忘錄的記錄依次執行,你就能找到答案。

為什麼要使用wal呢?上面的解釋比較秀逗,本節說一下真正的原因:真正的執行操作可能資料量會比較大,操作比較繁瑣,並且寫資料不一定是順序寫,所以如果每一次操作都要等待結果flush到可靠儲存(比如磁碟)中才執行下一步操作的話,效率就太低了。換一種思路,如果我們在做真正的操作之前,先將這件事記錄下來,持久化到可靠儲存中(因為日誌一般很小,並且是順序寫,效率很高),然後再去執行真正的操作。這樣執行真正操作的時候也就不需要等待執行結果flush到磁碟再執行下一步,因為無論在哪一步出錯,我們都能夠根據備忘錄重做一遍,得到正確的結果。

這篇文章應該是本部落格最簡短的一篇了,但是我覺得我解釋得夠清晰形象了,你們覺得呢?

資料庫中關係型資料庫的介紹

主要分為關係型資料庫和非關係型資料庫。關係型資料庫是依據關係模型來建立的資料庫,所謂關係模型就是 一對 一 一對多 多對多 等關係模型,關係模型就是指二維 模型,因此乙個關係型資料庫就是由二維表及其之間的聯絡組成的乙個資料組織。常見的關係型資料庫 oracle db2 microsoft sql s...

資料庫中的分頁技術

這個帖子很好,所以把內容記錄下來 oracle的分頁查詢語句基本上可以按照本文給出的格式來進行套用。分頁查詢格式 select from select a.rownum rn from select from table name a where rownum 40 where rn 21 其中最內...

資料庫中的分頁技術

1 oracle使用偽列rownum select rownum from hsr report r where r.rownum between 1 and 10 2 mysql使用關鍵字limit select from hsr report r limit 1,10 這裡有個問題,limit的...