2013-01-04 15 views

回答

2

当“连接”到使用memory而不是filesystem作为存储的SQLite数据库时有一个选项。

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

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

通常连接到SQLite数据库的DSN看起来像这样'sqlite:/path/to/file.sqlite'。访问文件系统权限给予数据库访问控制权。在内存数据库中,DSN将如下所示:'sqlite::memory'

+0

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

相关问题