SQLiteはデフォルトでFULL同期で動作します。 INIはありません。接続されている場合を除いて変更するものはありません。ただし、これはセッションごとに1回だけ設定する必要があるため、プロジェクトの接続機能を変更して接続後に「PRAGMA synchronous = OFF」コマンドを追加することができます。それは実際には最もクリーンで最速のアプローチです。
しかし、SQLiteがデフォルトで同期をオフにしてデータベースを開くことを本当に望む場合は、別のデフォルトでSQLiteを再コンパイルすることができます。
変更:
safety_level = 3;
へ:現在のリリース(3.7.3)、sqlite-amalgamation sourceのsqlite.cに変数safety_level
探しの場合
safety_level = 1;
(はいそれはシェル設定からのものです。)openDatabase
関数(そしてもし望むならattachFunc
)。
あなたが本当に取引を考慮することは非常に少なくとも、あなたが持っているだろうコメントで述べたように、このプロセスは、加速が必要な場合。道を進むと、これが好ましい解決策です。それは最も簡単ではないかもしれませんし、可能な限り多くの時間をとることもありますが、それは長期的に維持するのが最もクリーンで、最も安全で、最も簡単です。
おそらく、すべてのINSERTを単一のトランザクション( 'BEGIN; INSERT ...; INSERT ...; [...]; COMMIT;')に囲みたいと思うかもしれません。 。そうしないとパフォーマンスが大幅に低下します。これが非常にうまく説明されているSQLiteのFAQを参照してください。 – Benoit
私はトランザクションのことについて知っていますが、トランザクションでは使用できないJavaで開発されたアプリケーションがあります.SQLliteを停止して各挿入を検証し、一時停止を作成する方法を理解しない限り、INSERTは非常に遅く、 – djangofan