gpt4 book ai didi

sqlite3 从 C 批量插入?

转载 作者:行者123 更新时间:2023-12-03 17:39:17 30 4
gpt4 key购买 nike

我遇到了 .import 命令来执行此操作(批量插入),但是是否有一个可以使用 sqlite3_exec() 执行的查询版本。

我只想将一个小文本文件内容复制到表格中。

下面这个查询版本,

".import demotab.txt mytable"

最佳答案

Sqlite 的性能不会受益于批量插入。只需单独执行插入(但在单个事务内!)即可提供非常好的性能。

增加 sqlite 的页面缓存大小可能会让您受益;这取决于索引的数量和/或数据插入的顺序。如果您没有任何索引,对于纯粹的插入,缓存大小可能并不重要。

请务必使用准备好的查询,而不是在最内层循环中重新生成查询计划。将语句包装在事务中非常重要,因为这可以避免文件系统将数据库同步到磁盘的需要 - 毕竟,部分写入的事务无论如何都会被原子中止,这意味着所有 fsync() 都会被延迟,直到事务完成.

最后,索引会限制您的插入性能,因为它们的创建成本较高。如果您确实要处理大量数据并从空表开始,那么在数据之后添加索引可能会有所帮助 - 尽管这不是一个重要因素。

哦,您可能想要购买其中一款英特尔 X25-E SSD,并确保您拥有 AHCI Controller ;-)。

我正在维护一个带有 sqlite 数据库的应用程序,大约有 500000000 行(分布在多个表中) - 其中大部分是使用普通旧的 begin-insert-commit 批量插入的:它工作正常。

关于sqlite3 从 C 批量插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1357248/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com