带有 SQlite 的批量插入
Bulk Inserts with SQlite
我需要将大量数据插入到 sqlite 数据库中。数据是连续接收的。
什么更好:准备语句,开始事务,做插入,在一定数量的插入结束事务后,重复循环或缓存数据,偶尔打开数据库,做批量插入,关闭数据库,继续缓存?
还有其他技巧如何以最有效的方式做到这一点吗?
两种情况之间的唯一区别是关闭数据库连接。这通常不是一个好主意,因为它会删除页面缓存。 仅当您的内存量非常少并且确实需要它用于其他事情时,关闭连接才可能有用。
重要的是将许多插入放入单个事务中,但您已经在这样做了。
问题是有多少插入属于一个事务。 如果可以并行执行接收和数据库操作,则只需插入自上一批以来收到的所有数据。(这将导致连续的数据库操作流。 为较长的计时器缓存数据没有意义,除非您希望避免执行过多的磁盘 I/O。
如果你有一定的性能要求,那么你必须衡量自己。
相关文章:
- SqLite c++,可以创建数据库,但不能将 anthing 插入到表中
- 带有 SQlite 的批量插入
- SQLite C/C++ 接口:将数据插入表时内存增加
- 如何在Qt cpp的SQlite数据库中插入变量的值
- 如何在不同的列中插入随机数量的值? 查询.C++.SQlite 数据库
- 在 sqlite 中插入字符* 作为向量<byte>
- 如何使用 QSqlQuery 和 SQLite 从新插入的行中获取 ID
- 使用 c++ sqlite 将特定输入插入数据库
- Sqlite 插入时出错
- 插入protobuf时SQLite无法识别的令牌错误:要处理哪些令牌以及如何处理?
- 如何使用QT在SQLite数据库中插入RadioButton值
- 选择在 Sqlite 数据库中有效,但插入和更新语句不起作用
- SQLite C++ 程序值仅在第一次插入第二次不插入
- QT应用程序无法解释使用SQLite插入功能
- 仅使用 QSql 将选定的值插入 SQLite 表
- 将变量插入到 SQLite 查询
- QT创建者+SQLite.插入速度非常慢
- SQLite 插入语句与C++
- 使用qt.在SQLITE数据库中插入多行
- 从不同的应用程序中并行插入Sqlite,会发生什么