在SQLITE数据库中写入记录需要花费大量时间.如何提高刀片操作效率?
Writing records in SQLITE database taking huge time. How to improve efficiency of insert operation?
使用C++接口 API 在数据库中的表中插入大约 1.1 亿条记录需要花费大量时间(>1 小时(。
有没有办法缩短这个时间并提高刀片操作的效率?
我将 1000 条记录分组到一个事务中,然后执行它们。
sqlite3_exec(begin transaction);
sqlite3_exec(<1000> insertions);
sqlite3_exec(end transaction);
这需要花费大量时间。
如何提高插入效率?
假设所有语句都INSERT
到同一个表中,则可以通过将语句创建为预准备语句,然后将其重用于每一行(每次都将其绑定到新数据(来提高性能。这里有一些准备好的陈述的解释;基本思想是,而不是做sqlite3_exec
,你准备一个带有sqlite3_prepare_v2
的语句(用占位符而不是数据(,然后为每一行将其绑定到数据,执行它,然后重置它。这样,SQLite 就不必每次都重新解析/重新编译语句,因为只有值会更改。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- 如何提高矢量插入时间
- 在SQLITE数据库中写入记录需要花费大量时间.如何提高刀片操作效率?
- 为什么for循环中的异步不能提高执行时间
- 提高驱动程序程序的时间效率
- 系统时间从何而来?
- 执行时间:与Java BigInteger相比,提高了多精度
- 提高棋盘模式的时间复杂度
- 如何提高Python的睡眠/暂停时间准确性
- 比较向量元件的运行时间复杂性的提高
- 提高给定字符串所有排列的时间复杂度
- 嵌套循环的时间复杂度:cn(n+1)/2从何而来
- C++中内存泄漏本身存在多长时间,以及等效的Java程序有何不同
- 分割如何提高埃拉托斯尼筛的运行时间
- 如何提高PNG数据的解码时间
- 提高简单的人类可读的日期时间
- 如何提高使用barrier的c++ pthread代码的时间性能
- 帮助改进代码,提高时间效率
- 如何提高超过时间限制的速度
- 提高了算法的时间复杂度