【发布时间】:2013-01-04 12:02:10
【问题描述】:
我想知道在android设备中,如果数据库有很多项目,数据库效率更高还是只是一个普通的json文件。
【问题讨论】:
标签: android database json sqlite
我想知道在android设备中,如果数据库有很多项目,数据库效率更高还是只是一个普通的json文件。
【问题讨论】:
标签: android database json sqlite
不,Sqlite 将通过分页读取硬盘数据。 Sqlite 文档说: “为了将数据库中的数据返回给用户,例如作为 SELECT 查询的结果,SQLite 必须在某些时候从数据库文件中读取数据。通常,数据是以对齐的页面块从数据库文件中读取的——大小字节。"
【讨论】:
当“连接”到 SQLite 数据库时,可以选择使用 memory 而不是 filesystem 作为存储。
但它仅在创建新数据库时使用,因此内存数据库中的“新”将为空。当您想要利用 SQL(例如对大量数据进行索引和查询)时,这非常有用。
不幸的是,从文件系统复制到内存(反之亦然)不是 SQLite 的功能。这是一个设计选择,因为 SQLite 文件必须由您(或其他人)锁定以进行并发控制。
通常DSN 连接到 SQLite 数据库看起来像这样'sqlite:/path/to/file.sqlite'。对数据库的访问控制由访问文件系统权限提供。在内存数据库的情况下,DSN 看起来像这样'sqlite::memory'。
【讨论】: