私は激しくSQLiteを誤解していました.その誤解を並べてみました.
1.INSERTは遅くない
INSERTクエリは,トランザクションでまとめる.トランザクションとは,一旦,他からの処理をロックして,まとめて登録するような感じの処理らしい.
多くのデータをINSERTするときは,

sqlite3_exec( database, "BEGIN", NULL, NULL, NULL );
for(){
insert----
}
sqlite3_exec( database, "COMMIT", NULL, NULL, NULL );

とする.
2.VACUUMして,メモリを効率よく使う
SQLiteは,削除した項目が残る.定期的にVACUUMをして,残ったゴミを掃除する.
iPhoneでは,使えるメモリが少ないので,これはかなりクリティカルな問題となる.
ただし,経験的にVACUUMはゴミが多くなると,処理に時間が掛かる.VACUUMは,自動的に実行することも出来るが,これは,完全にゴミを掃除するわけではないらしい.

sqlite3_exec( database, "PRAGMA auto_vacuum=1", NULL, NULL, NULL );

3.UPDATEを速くする(経験的に)
これ,やり方が間違っているかも知れません.また,SQLでは一般的に間違っているか,常識かも知れない.excuseはこんなところにして.UPDATEするくらいなら,まとめて新しいデータを全部INSERTして,古いデータをDELETEした方が速かった.
流れとしては,SELECTでデータをフェッチ→データを更新→更新したデータをINSERT→フェッチしてきたデータをフラグかなんかで一括DELETE.
まぁ,使えない状態の方が多そうですが.