SQLite在连接时是否将整个db文件加载到内存中?

vir*_*sir 8 database sqlite android json

我想知道数据库更有效率,或者只是一个普通的json文件,如果它有很多项目,在Android设备中.

Mih*_*ncu 0

当“连接”到 SQLite 数据库时,可以选择使用而memory不是作为filesystem存储。

但它仅在创建新数据库时使用,因此内存数据库中的“新”将为空。当您想要利用 SQL 之类的索引和查询大量数据时,这非常有用。

不幸的是,从文件系统复制到内存(反之亦然)并不是 SQLite 的功能。这是一个设计选择,因为 SQLite 文件必须由您(或其他人)锁定以进行并发控制。

通常,DSN连接到 SQLite 数据库将如下所示'sqlite:/path/to/file.sqlite'。对数据库的访问控制由访问文件系统权限给出。在内存数据库的情况下,DSN将如下所示'sqlite::memory'

  • 这并没有回答原来的OP问题,关于sqlite的内部架构,当数据库本身在使用时,它是否首先将整个文件读入内存?就像使用 json/ini 文件时所做的那样,或者它可以修改文件的部分内容而不首先将其完全加载到内存中吗? (5认同)