国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQLite > 正文

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

2020-01-25 19:26:23
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了SQLite教程(十):內存數據庫和臨時數據庫,本文講解了它們的創建方法和相關知識,需要的朋友可以參考下
 

一、內存數據庫:

    在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為了保證有更多的內存可用于其它操作,因此會將臨時數據庫中的部分數據寫到磁盤文件中,而內存數據庫則始終會將數據存放在內存中。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黎城县| 乌拉特中旗| 徐汇区| 阳原县| 宿松县| 都安| 陕西省| 东丽区| 宁南县| 海盐县| 隆林| 紫云| 错那县| 崇礼县| 铜川市| 江达县| 麟游县| 澄迈县| 珠海市| 杨浦区| 梁平县| 六安市| 信阳市| 紫云| 沁水县| 内黄县| 保亭| 藁城市| 拜泉县| 平舆县| 大方县| 湖南省| 洪江市| 志丹县| 孟村| 新津县| 安康市| 沂水县| 托里县| 大理市| 乌鲁木齐市|