久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

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

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

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

一、內存數(shù)據(jù)庫:

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

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

標簽: SQLite
相關文章:
主站蜘蛛池模板: 乳山市| 遂平县| 濮阳市| 仪征市| 梧州市| 天柱县| 凉山| 富宁县| 济南市| 普兰县| 白朗县| 西丰县| 泉州市| 灌云县| 吴旗县| 桂林市| 丰城市| 乌恰县| 陈巴尔虎旗| 姜堰市| 寻乌县| 麟游县| 南阳市| 荔波县| 军事| 木兰县| 横峰县| 营口市| 巴中市| 陆丰市| 来凤县| 云阳县| 宝坻区| 彭泽县| 德保县| 阳新县| 泾源县| 玉山县| 永清县| 团风县| 行唐县|