linux - SQLite 数据库构建加速

标签 linux sqlite

为了在实时环境中保存大量数据,我将使用 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/

相关文章:

linux - 使用 +Farsi 编译 vim 以获得 Farsi 映射

linux - 如何判断输入是否为退格

c++ - C++ 代码编译期间的段错误(核心转储)错误消息

java - 数据库表被锁定(Java、SQLite)

python-3.x - 创建 Bootstrap 可折叠 Accordion 表行,显示来自 flask sqlalchemy 占位符的动态内容

sql-server - 使用 Entity Framework 4 Code First 使用 SQL Server CE 4 或 SQLite 进行集成测试

android - 将图像存储在应用程序内存中的最佳方式是什么?

sql - 在SQL中删除保留旧条目的重复数据

linux消息其他用户的终端: change text color?

Linux:从包含在引号中的文件中读取单词