1

データベースに保存する大量のデータを生成するアプリケーションを作成しています。

DB スキーマは非常に単純です。これは 4 列しかないテーブルですが、30000 行以上を入力する必要があります。

APIとしてSQLiteとQSqlを使用しています。

データは非常に高速に生成され (スリープなし)、QSqlQuery を使用して一度に行を挿入しています。ただし、100行を保存するには7〜8秒かかるようです(QTime時間のカウントに使用しています)。

使用してみましたが、 1000行ごとにQSqlTableModel呼び出してもパフォーマンスの向上は見られませんでした(1000行で70〜80秒を示しています)。QSqlTableModel::submitAllQTime

行をより速く格納する方法はありますか? テーブルを SQLite で埋める最速の方法は何ですか?

4

2 に答える 2

1

トランザクションが正しく設定されているかどうかを確認してみてください。コミットするためにディスクに同期する必要があるため、コストがかかります。

また、SQLite は読み取り用に最適化されていることにも注意してください。

于 2011-05-09T09:59:22.627 に答える
1

最初にすべてのインデックスを削除し、すべてのレコードがインポートされた後に再度追加してみてください。もちろん、最初にテーブルを空にするか、単に新しいレコードを追加するかによって、結果は異なります。

于 2014-06-19T19:35:21.430 に答える