2012-02-07 6 views
1

リアルタイム環境で大量のデータを保存するために、SQLiteを使用します。SQLite DB構築スピードアップ

新しいデータをDBにリアルタイムで書き込むためのディスクスペースを見つける(またはDBファイル内のページを移動する)手間を避けるために、テーブルを事前に作成して、任意のセルに(そのタイプに応じて)持つことができるので、リアルタイムランニングでは、 'UPDATES'クエリのみが存在します。

journal_mode=WALモードで作成したデータを挿入します。

ビルドしなければならない6種類のDBファイルがあります。すべてのDBが持っているすべてのDB内のすべてのテーブルが同じように見える10〜200のテーブル、間:

ID | TimeStart  | Float data | Float data | Float data 
-------------------------------------------------------------------------------- 

差は100000行と500000行の一部といくつかのテーブルがあるということです。

これらのDBはARM9 CPU(Linux上)を搭載したSDカード上に構築されているため、DBを構築するにはの時間が個必要です。私は何日か話している。

私はどのように建物をスピードアップできますか?私ができる「プラグマ」やトリックはありますか?レディテーブルをコピーすることはできますか?

DBの堅牢性は構築プロセスにおいて重要ではないことに言及することが重要です.DBの腐敗の可能性よりもスピードが重要です。

答えて

0

thisを読むと、それは非常に関連性があります。 Graham BorlandとNick Shawの回答も非常に関連しており、私があなたに与えたリンク文書のアドバイスの一部です。

0

ホストマシンにデータベースを事前生成し、アプリケーションをターゲットデバイスにインストールするときにコピーします。

+0

私はそれについて考えました、それはあなたが手動で別のDBをコピーする必要がある別のターゲットを持っているときに、ターゲットにDBを構築するとき、ターゲットボードを自動的にチェックすることができます - 関連するDBを構築する。 –

1

私は@Graham Borlandの答えに同意しますが、インデックスがある場合は、まで作成しないことをお勧めします。の後にすべてのデータをDBに追加しました。手前に追加すると、新しいレコードを挿入するたびにインデックスが自動的に更新されます。非常に多数の行をすばやく挿入すると、操作が非常に遅くなります。

関連する問題