3
我想知道的是數據庫更有效率或只是一個普通的JSON文件,如果它有很多項目,在Android設備。SQLite在連接時是否將整個數據庫文件加載到內存中?
我想知道的是數據庫更有效率或只是一個普通的JSON文件,如果它有很多項目,在Android設備。SQLite在連接時是否將整個數據庫文件加載到內存中?
當「連接」到使用memory
而不是filesystem
作爲存儲的SQLite數據庫時有一個選項。
但它僅在創建新數據庫時使用,因此內存數據庫中的「新」將爲空。當你想利用像索引和查詢大量數據這樣的SQL時,這非常有用。
不幸的是,從文件系統複製到內存中(反之亦然)並不是SQLite中的一項功能。這是一個設計選擇,因爲您的(或其他人)必須鎖定SQLite文件進行併發控制。
通常連接到SQLite數據庫的DSN
看起來像這樣'sqlite:/path/to/file.sqlite'
。訪問文件系統權限給予數據庫訪問控制權。在內存數據庫中,DSN
將如下所示:'sqlite::memory'
。
這並不回答原來的OP問題,關於sqlite的內部架構,當數據庫本身在使用時,它是否首先將整個文件讀入內存?就像使用json/ini文件時所做的那樣,或者它可以修改文件的某些部分而不必首先將其全部加載到內存中? – vasilevich