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