關於SQLite七種臨時檔案

2022-08-04 10:03:10 字數 2106 閱讀 3687

rollback journals

出現在事務的起始點,消失在事務的結束點

若pragma locking_mode=exclusive; // 預設為normal

則不會在事務結束點刪除回滾日誌

若pragma journal_mode=persist; // 預設為delete

也不會在事務結束點刪除回滾日誌

若pragma journal_mode=off;

則不會產生回滾日誌

儲存於磁碟上

master journal files

在乙個資料庫連線使用attach命令接入n個外部資料庫的情況下,事務開始點產生的回滾日誌

儲存於磁碟上

statement journal files

針對單個sql語句的回滾日誌

儲存於磁碟上

temp databases

使用pragma synchronous=off

使用pragma journal_mode=persist

操作速度較快,一般用於臨時日誌的記錄操作

materializations of views and subqueries

儲存檢視、子查詢等臨時表

transient indices

瞬時索引,比如

order by從句

group by從句

復合select從句joined by union, except或intersect

transient database used by vacuum

使用vacuum壓縮資料庫檔案時使用的臨時檔案

temp databases

materializations of views and subqueries

transient indices

transient database used by vacuum

這四類臨時檔案的儲存位置受pragma temp_store和sqlite_temp_store影響,如下表所示:

名稱解釋

儲存位置

rollback journals

回滾日誌,存在於事務的始末

始終儲存於磁碟上,這三類檔案只是出現的場合不一樣,而本質是一樣的,可以總結為事務的回滾日誌檔案

命名為』dbname.db-journal』

master journal files

主資料庫日誌,連線外部資料庫時出現

statement journal files

出現在單條sql語句的事務始末

temp databases

用於儲存臨時表(temp table)

pragma temp_store

0(default)

1

2

sqlite_temp_store

0

磁碟1(default)

磁碟磁碟

記憶體2

記憶體3

記憶體即使將它們的位置設定為磁碟,sqlite也會將它們儲存在記憶體頁中,直到記憶體頁滿才寫進磁碟,而這個記憶體頁大小由sqlite_default_temp_cache_size決定,預設是500頁。

materializations of views and subqueries

用於儲存檢視、子查詢等臨時表

transient indices

用於儲存order by、group by等臨時索引

transient database used by vacuum

vacuum命令臨時檔案

bash 臨時檔案

1.臨時檔案目錄 tmp 使用者可以隨時隨地利用mktemp命令建立臨時檔案與 tmp目錄,這個目錄在每次系統啟動時都會被清空,因此裡面的檔案都是臨時使用的 不能永久儲存 用完就不管的。任何賬戶都有權在 tmp目錄下建立臨時檔案,完整的讀寫許可權全都給建立它的屬主,並且其它賬戶無權訪問它。2.使用m...

android臨時檔案

activity 1.啟動乙個新的activity 會呼叫oncreate onstart onresume 2.onpause protected void oncreate protected void onstart 當activity被使用者看到時,呼叫 protected void onr...

Oracle臨時檔案

臨時資料檔案時一種特殊的檔案,當記憶體不足時,oracle用他來儲存一些臨時資料,如排序或雜湊操作。自12c起,對臨時表的操作所產生的undo也會放到臨時表空間中,而在12c之前,這部分undo放在undo表空間,聯動產生redo。臨時表空間以稀疏 sparse 的方式建立 sql create t...