SQLite DB构建加速

时间:2012-02-07 16:30:51

标签: linux sqlite

我将使用SQLite来在实时环境中保存大量数据。

为了避免查找磁盘空间(或在DB文件中移动页面)以便将新数据实时写入数据库的过程,我想提前构建表并将最大的数据插入其中任何单元格都可以(根据其类型),因此在实时运行中,只会有“更新”查询。

journal_mode=WAL模式构建和插入数据。

我有6个不同的DB文件,我必须构建。每个数据库都有10到200个表,其中所有数据库中的所有表看起来都相同:

ID  |  TimeStart     |   Float data   |   Float data   |   Float data
--------------------------------------------------------------------------------

不同之处在于,有些表有100000行,有些表有500000行。

这些数据库构建在带有ARM9 CPU(在Linux上)的SD卡上,因此构建数据库需要很多时间。我说的是几天。

我如何加快建筑物的速度?我能做什么'Pragma'或技巧?我可以复制一张准备好的桌子吗?

重要的是要提到数据库的健壮性在构建过程中并不重要 - 速度对我来说比数据库的损坏可能性更重要。

3 个答案:

答案 0 :(得分:1)

我同意@Graham Borland的回答,但是:如果你有任何索引,我建议你不要创建它们,直到之后你已经将所有数据添加到数据库中。如果您事先添加它们,每次插入新记录时索引都会自动更新,当您快速连续插入大量行时,这会使速度无法降低。

答案 1 :(得分:0)

在主机上预生成数据库,并在将应用程序安装到目标设备时将其复制。

答案 2 :(得分:0)

阅读this,这非常重要。 Graham Borland和Nick Shaw的答案也非常相关,并且是我给你的链接文件中的建议的一部分。