『SQLite』のINSERT処理時間について

投稿者: | 2005年12月26日

SQLiteでデータ追加を行う場合、注意しなければならないことがある。
連続して、INSERT INTO によるデータ追加を行うと、処理時間が著しくかかるのだ。
SQLiteは、データベースファイルが一つのファイルにまとまっており、このファイルを保護しながらデータ更新を行っている。
そのため、連続してデータ更新処理をする場合は、トランザクション内で行う必要があるのだ。


具体的には、
トランザクションを開始し、

(void)sqlite_exec(db, “BEGIN”, NULL, NULL, &errmsg);

データ追加等の処理を行い、
COMMIT命令により、トランザクション終了。

(void)sqlite_exec(db, “COMMIT”, NULL, NULL, &errmsg);

というような流れになる。
比べてみると分かるが、処理時間は劇的に変わる。