C++ C++;SQLite在C界面中导入整个CSV文件

C++ C++;SQLite在C界面中导入整个CSV文件,c++,performance,sqlite,visual-c++,C++,Performance,Sqlite,Visual C++,有没有办法通过C接口将整个CSV文件导入SQLite 我知道命令行导入看起来像这样 sqlite> .mode csv <table> sqlite> .import <filename> <table> 这在性能上产生了巨大的改进 有用的相关旁注 此外,如果要从查询结果创建表或将查询结果插入表,请尝试创建表或将结果插入表 插入到表中时,插入链接可能不明显。要执行此操作的查询如下所示 INSERT INTO [TABLE] [QUER

有没有办法通过C接口将整个CSV文件导入SQLite

我知道命令行导入看起来像这样

   sqlite> .mode csv <table>
   sqlite> .import <filename> <table>
这在性能上产生了巨大的改进

有用的相关旁注

此外,如果要从查询结果创建表或将查询结果插入表,请尝试创建表或将结果插入表

插入到表中时,插入链接可能不明显。要执行此操作的查询如下所示

INSERT INTO [TABLE] [QUERY]
其中,
[TABLE]
是您希望运行的查询的结果进入的表

我成功地在C++中创建了一个CSV阅读器,它读取CSV文件并将其内容逐行插入到表中…装载大约需要20分钟


将所有插入内容放在一个事务中—或者每个事务至少批处理100或1000行—我希望您的程序运行得更快。

这将使时间缩短约一分钟。我假设我的代码中还有另一个瓶颈。:/你对文件指针或二进制数据有什么意见吗?让我们看看你的循环。有些东西听起来不对劲;不会花那么长时间的。(我不知道二进制数据选项等)这与我打包数据并将其交给插入函数的方式有关(为了可维护性)。我把所有的逻辑都放进了解析循环,我在~12分钟的时间里,这会好得多。这看起来还是很慢,但我肯定是我。我会继续寻找那些会增加O符号的东西,然后杀死它们。谢谢经过一些测试,并消除了这个巨大的瓶颈。你的回答确实缩短了2-5分钟的时间。通过缓冲所有insert语句,并在到达文件末尾时提交它们,我以大约9.5分钟的时间运行,这是可用的。在某些方面仍有改进的余地,但你的回答肯定帮了大忙。谢谢
INSERT INTO [TABLE] [QUERY]