C アプリケーションで sqlite が大幅に遅くなるという問題があり、それが予想されることなのか、それとも sqlite を正しく使用していないのかわかりません。データベースは、ここで説明されているようなローリング ログを使用しますhttp://dt.deviantart.com/journal/Build-Your-Own-Circular-Log-with-MySQL-222550965。
書き込み対象のテーブルには約 170 の float 列があり、200 万行でロールオーバーするように設定されています。行を挿入するクエリは次のようになります。
INSERT OR REPLACE INTO table_name (row_id, <170 column names>) values ((SELECT
COALESCE(MAX(log_id), 0) % max_rows + 1 FROM table_name AS t), <170 floats>)
挿入時間は、行数に比例して増加するようです。最初の挿入にかかる時間は 1 秒未満ですが、60,000 回目の挿入には 30 秒かかります。これはあなたが期待するものですか?データベースはext3フォーマットのSDカードに保存されていますが、これが要因でしょうか?