成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQLite使用內存數據庫

數據庫 其他數據庫
SQLite數據庫通常存儲在單個普通磁盤文件中。但是,在某些情況下,數據庫可能存儲在內存中。

SQLite數據庫通常存儲在單個普通磁盤文件中。但是,在某些情況下,數據庫可能存儲在內存中。

[[273803]]

強制SQLite數據庫單純的存在于內存中的常用方法是使用特殊文件名“ :memory: ” 打開數據庫。換句話說,不是將真實磁盤文件的名稱傳遞給sqlite3_open(),sqlite3_open16()或 sqlite3_open_v2()函數之一,而是傳入字符串“:memory:”。例如:

  1. rc = sqlite3_open(“:memory:”,&db); 

調用此接口完成后,不會打開任何磁盤文件。而是在內存中創建一個新的數據庫。數據庫連接關閉后,數據庫就不再存在。每一個memory數據庫彼此不同。因此,打開兩個數據庫連接,每個數據庫連接的文件名為“:memory:”,將創建兩個獨立的內存數據庫。

特殊文件名“:memory:”可用于允許數據庫文件名的任何位置。例如,它可以被用作 文件名中的ATTACH命令:

  1. ATTACH DATABASE ':memory:' AS aux1; 

請注意,為了應用特殊的“:memory:”名稱并創建純內存數據庫,文件名中不能有其他文本。因此,可以通過添加路徑名在文件中創建基于磁盤的數據庫,如下所示: "./:memory:"。

使用URI文件名時,特殊的“:memory:”文件名也可以使用。例如:

  1. rc = sqlite3_open(“file :: memory:”,&db); 

要么,

  1. ATTACH DATABASE 'file::memory:' AS aux1; 

內存數據庫和共享緩存

如果使用URI文件名打開內存數據庫,則允許它們使用共享緩存。如果使用未加修飾的“:memory:”名稱來指定內存數據庫,那么該數據庫始終具有專用高速緩存,并且僅對最初打開它的數據庫連接可見。但是,可以通過兩個或多個數據庫連接打開相同的內存數據庫,如下所示:

  1. rc = sqlite3_open("file::memory:?cache=shared", &db); 

要么,

  1. ATTACH DATABASE 'file::memory:?cache=shared' AS aux1; 

這允許單獨的數據庫連接共享相同的內存數據庫。當然,共享內存數據庫的所有數據庫連接都需要在同一個進程中。當數據庫的最后一個連接關閉時,將自動刪除數據庫并回收內存。

如果在單個進程中需要兩個或多個不同同時可共享的內存數據庫,則mode = memory查詢參數可與URI文件名一起使用以創建命名的內存數據庫:

  1. rc = sqlite3_open("file:memdb1?mode=memory&cache=shared", &db); 

要么,

  1. ATTACH DATABASE 'file:memdb1?mode=memory&cache=shared' AS aux1; 

當以這種方式命名內存數據庫時,它將僅與使用完全相同名稱的另一個連接共享其緩存。

[[273804]]

臨時數據庫

當傳遞給sqlite3_open()或 ATTACH的數據庫文件的名稱是空字符串時,則會創建一個新的臨時文件來保存數據庫。

  1. rc = sqlite3_open("", &db); 
  2. ATTACH DATABASE '' AS aux2; 

每次都會創建一個不同的臨時文件,因此就像使用特殊的“:memory:”字符串一樣,兩個到臨時數據庫的數據庫連接都有自己的私有數據庫。創建它們的連接關閉時,將自動刪除臨時數據庫。

即使為每個臨時數據庫分配了磁盤文件,實際上臨時數據庫通常駐留在內存中的pager緩存中,因此“:memory:”創建的純內存數據庫與臨時數據庫之間的差別很小。由空文件名創建。唯一的區別是“:memory:”數據庫必須始終保留在內存中,而如果數據庫變大或SQLite受到內存壓力,臨時數據庫的某些部分可能會刷新到磁盤。

前面的段落描述了默認SQLite配置下臨時數據庫的行為。如果需要,應用程序可以使用 temp_store編譯指示和SQLITE_TEMP_STORE編譯時參數來強制臨時數據庫表現為純內存數據庫。

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2011-08-02 16:16:08

iPhone開發 SQLite 數據庫

2023-10-17 08:31:03

SQLite數據庫

2013-03-27 09:47:01

Android開發SQAndroid SDK

2011-07-27 10:16:41

iPhone SQLite 數據庫

2017-07-12 09:20:42

SQLite數據庫移植

2011-07-20 12:34:49

SQLite數據庫約束

2021-09-12 17:25:12

SQLite數據庫

2011-08-04 18:00:47

SQLite數據庫批量數據

2022-04-05 11:24:17

CyberDB內存數據庫Python

2024-10-28 16:31:03

2024-02-28 08:06:17

2011-07-05 10:16:16

Qt 數據庫 SQLite

2011-08-24 13:49:45

Access數據庫轉化

2011-04-14 09:38:55

內存數據庫

2018-07-13 09:20:30

SQLite數據庫存儲

2013-09-22 13:25:54

MongoDB內存數據庫

2009-12-07 17:33:44

PHP SQlite數

2010-01-27 18:33:16

Android SQL

2011-08-30 14:15:34

QTSQLite數據庫

2013-04-01 10:49:51

iOS開發sqlite數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美三区 | 秋霞av国产精品一区 | 欧美亚洲第一区 | 亚洲视频二区 | 激情欧美一区二区三区 | www国产成人免费观看视频,深夜成人网 | 精品91视频 | 天天操,夜夜爽 | 成人在线视频网站 | 亚洲国产一区二区在线 | 99久久婷婷国产综合精品电影 | 99riav国产一区二区三区 | 国产一区视频在线 | 国产一区二区精华 | 在线视频第一页 | 日韩中文字幕 | 久久久久久久久综合 | 欧美一区二区三区在线观看 | 日本网站在线看 | www.中文字幕av | 久草在线| 毛片一区二区三区 | 亚洲欧美中文字幕在线观看 | 亚洲在线一区二区 | 欧美成人h版在线观看 | 亚洲成人观看 | 国产美女永久免费无遮挡 | 黄在线| 羞羞视频在线网站观看 | 一区二区三区中文字幕 | 日本成人中文字幕 | 久久久毛片 | 国产高清在线精品 | 精品久久久久久久 | 在线看免费的a | 中文在线www| 一级黄色片在线看 | av在线免费观看网址 | 午夜在线小视频 | 久久久久久成人 | www.se91|