SQLite恢復技術簡介

2022-04-08 04:57:47 字數 848 閱讀 8270

sqlite恢復技術簡介

資料庫事務具有四個特性,即acid:原子性(atomicity)、一致性(consistency)、隔離性(isolation,又稱獨立性)、永續性(durability)。

由於一項操作通常會包含許多子操作,而這些子操作可能會因為硬體的損壞或其他因素產生問題,要正確實現acid並不容易。acid建議資料庫將所有需要更新以及修改的資料一次操作完畢,但實際上並不可行。

目前主要有兩種方式實現acid:第一種是write ahead logging,也就是日誌的方式。第二種是shadow paging。

sqlite使用技術就是影子分頁技術(shadow paging)。shadow paging技術可能比較落後的技術,所以現代的dbms很少採用。  www.2cto.com  

相對於wal(write ahead logging)技術,shadow paging技術實現起來比較簡單,消除了寫日誌記錄的開銷恢復的速度也快(不需要redo和undo)。shadow paging的缺點就是事務提交時要輸出多個塊,這使得提交的開銷很大,而且以塊為單位,很難應用到允許多個事務併發執行的情況——這是它致命的缺點。

wal 的中心思想是對資料檔案 的修改(它們是表和索引的載體)必須是只能發生在這些修改已經 記錄了日誌之後 -- 也就是說,在日誌記錄沖刷到永久儲存器之後. 如果我們遵循這個過程,那麼我們就不需要在每次事務提交的時候 都把資料頁沖刷到磁碟,因為我們知道在出現崩潰的情況下, 我們可以用日誌來恢復資料庫:任何尚未附加到資料頁的記錄 都將先從日誌記錄中重做(這叫向前滾動恢復,也叫做 redo) 然後那些未提交的事務做的修改將被從資料頁中刪除 (這叫向後滾動恢復 - undo).現在sqlite也提供了wal日誌機制。  

作者 龍舌蘭檸檬酒

SQLite簡介,C 呼叫SQLite

當我們用到海量資料時一般會用oracle,sql server,db2,sybase,mysql等資料庫來儲存和管理資料.如果只是程式中需要儲存少量資料的話直接整到登錄檔裡,或者儲存到乙個xml檔案中.那如果資料量剛好不多不少,用oracle這樣的資料庫有點小題大作,沒有必要.有個xml儲存的話訪問...

sqlite3使用簡介

一 使用流程 使用的過程根據使用的函式大致分為如下幾個過程 這幾個過程是概念上的說法,而不完全是程式執行的過程,如sqlite3 column 表示的是對查詢獲得一行裡面的資料的列的各個操作統稱,實際上在sqlite中並不存在這個函式。1 sqlite3 open 開啟資料庫 在運算元據庫之前,首先...

python技術簡介 Python簡介

python 簡介 python是乙個高層次的 結合了解釋性 編譯性 互動性和物件導向的指令碼語言。python的設計具有很強的可讀性,相比其他語言經用使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。python 是一種解釋型語言 這意味著開發過程中沒有了編譯這個環節,類似...