国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

SQLite教程(十):內存數據庫和臨時數據庫

瀏覽:149日期:2023-04-05 14:55:59

一、內存數據庫:

    在SQLite中,數據庫通常是存儲在磁盤文件中的。然而在有些情況下,我們可以讓數據庫始終駐留在內存中。最常用的一種方式是在調用sqlite3_open()的時候,數據庫文件名參數傳遞":memory:",如:
 復制代碼 代碼如下:
    rc = sqlite3_open(":memory:", &db);
 
    在調用完以上函數后,不會有任何磁盤文件被生成,取而代之的是,一個新的數據庫在純內存中被成功創建了。由于沒有持久化,該數據庫在當前數據庫連接被關閉后就會立刻消失。需要注意的是,盡管多個數據庫連接都可以通過上面的方法創建內存數據庫,然而它們卻是不同的數據庫,相互之間沒有任何關系。事實上,我們也可以通過Attach命令將內存數據庫像其他普通數據庫一樣,附加到當前的連接中,如:
 復制代碼 代碼如下:
    ATTACH DATABASE ":memory:" AS aux1;
 
   
二、臨時數據庫:

    在調用sqlite3_open()函數或執行ATTACH命令時,如果數據庫文件參數傳的是空字符串,那么一個新的臨時文件將被創建作為臨時數據庫的底層文件,如:
 復制代碼 代碼如下:
    rc = sqlite3_open("", &db);
 
    或
 復制代碼 代碼如下:
    ATTACH DATABASE "" AS aux2;
 
    和內存數據庫非常相似,兩個數據庫連接創建的臨時數據庫也是各自獨立的,在連接關閉后,臨時數據庫將自動消失,其底層文件也將被自動刪除。
    盡管磁盤文件被創建用于存儲臨時數據庫中的數據信息,但是實際上臨時數據庫也會和內存數據庫一樣通常駐留在內存中,唯一不同的是,當臨時數據庫中數據量過大時,SQLite為了保證有更多的內存可用于其它操作,因此會將臨時數據庫中的部分數據寫到磁盤文件中,而內存數據庫則始終會將數據存放在內存中。

標簽: SQLite
相關文章:
主站蜘蛛池模板: 镇赉县| 张家界市| 科技| 大荔县| 盖州市| 沙雅县| 延庆县| 即墨市| 房产| 阿克苏市| 永济市| 涡阳县| 衡水市| 西乌珠穆沁旗| 楚雄市| 老河口市| 江永县| 芜湖县| 石门县| 来凤县| 浮山县| 犍为县| 岫岩| 定陶县| 化隆| 青阳县| 长汀县| 曲阜市| 丰镇市| 南涧| 东海县| 定襄县| 伊宁县| 炉霍县| 井研县| 莱阳市| 自治县| 郯城县| 教育| 无锡市| 贡嘎县|