为了在实时环境中保存大量数据,我将使用 SQLite。
为了避免实时将新数据写入数据库时查找磁盘空间(或移动数据库文件中的页面)的过程,我想提前建表并将最大的数据插入其中任何 cell 都可以有(根据它的类型),所以在实时运行中,只会有 'UPDATES' 查询。
在journal_mode=WAL
模式下构建和插入数据。
我必须构建 6 个不同的数据库文件。每个数据库都有 10 到 200 个表,所有数据库中的所有表看起来都一样:
ID | TimeStart | Float data | Float data | Float data
--------------------------------------------------------------------------------
不同的是,有的表有 100000 行,有的表有 500000 行。
这些数据库构建在带有 ARM9 CPU(在 linux 上)的 SD 卡上,因此构建数据库需要很多时间。我说的是一些日子。
如何加快构建速度?我可以做任何“Pragmas”或技巧吗?我可以复制现成表吗?
值得一提的是,数据库的健壮性在构建过程中并不重要 - 对我来说,速度比数据库的损坏可能性重要得多。
最佳答案
我同意@Graham Borland 的回答,但同时:如果您有任何索引,我建议您在将所有数据添加到数据库之后之前不要创建它们。如果您事先添加它们,索引会在您每次插入新记录时自行更新,当您快速连续插入大量行时,这会大大降低速度。
关于linux - SQLite 数据库构建加速,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9179987/