在SQLite中填充表格的最快方法是什么?

时间:2011-05-09 09:50:42

标签: sqlite qtsql

我正在编写一个应用程序,它会生成大量数据以存储在数据库中。

数据库架构非常简单:它只是一个只有4列的表,但我必须填充超过30000行。

我正在使用SQLite和QSql作为API。

数据生成非常快(没有睡眠),我正在使用QSqlQuery来插入一行。 但是,似乎需要7到8秒才能存储100行(我正在使用QTime进行计时)。

我尝试使用QSqlTableModel,但我注意到没有性能改进,即使每1000行调用QSqlTableModel::submitAllQTime显示1000行的70-80秒)。

有没有办法更快地存储行?使用SQLite填充表格的最快方法是什么?

2 个答案:

答案 0 :(得分:1)

你可以尝试看看你是否有transactions set up correctly;它们很昂贵,因为它们必须同步到磁盘才能提交。

另外请记住,SQLite无论如何都要更加优化。

答案 1 :(得分:1)

您可以尝试在开始时删除任何索引,然后在导入所有记录后再添加它们。如果您先排空表格或仅添加新记录,结果会有所不同。