SQLite學習手冊(內存數據庫)

1、內存數據庫:

    在SQLite中,數據庫一般是存儲在磁盤文件中的。然而在有些狀況下,咱們可讓數據庫始終駐留在內存中。最經常使用的一種方式是在調用sqlite3_open()的時候,數據庫文件名參數傳遞":memory:",如:
     rc = sqlite3_open(":memory:", &db);
    在調用完以上函數後,不會有任何磁盤文件被生成,取而代之的是,一個新的數據庫在純內存中被成功建立了。因爲沒有持久化,該數據庫在當前數據庫鏈接被關閉後就會馬上消失。須要注意的是,儘管多個數據庫鏈接均可以經過上面的方法建立內存數據庫,然而它們倒是不一樣的數據庫,相互之間沒有任何關係。事實上,咱們也能夠經過Attach命令將內存數據庫像其餘普通數據庫同樣,附加到當前的鏈接中,如:
     ATTACH DATABASE ':memory:' AS aux1;
    
2、臨時數據庫:

    在調用sqlite3_open()函數或執行ATTACH命令時,若是數據庫文件參數傳的是空字符串,那麼一個新的臨時文件將被建立做爲臨時數據庫的底層文件,如:
     rc = sqlite3_open("", &db);
    或
     ATTACH DATABASE '' AS aux2;  
    和內存數據庫很是類似,兩個數據庫鏈接建立的臨時數據庫也是各自獨立的,在鏈接關閉後,臨時數據庫將自動消失,其底層文件也將被自動刪除。
    儘管磁盤文件被建立用於存儲臨時數據庫中的數據信息,可是實際上臨時數據庫也會和內存數據庫同樣一般駐留在內存中,惟一不一樣的是,當臨時數據庫中數據量過大時,SQLite爲了保證有更多的內存可用於其它操做,所以會將臨時數據庫中的部分數據寫到磁盤文件中,而內存數據庫則始終會將數據存放在內存中。
相關文章
相關標籤/搜索