SQLiteでデータ追加を行う場合、注意しなければならないことがある。
連続して、INSERT INTO によるデータ追加を行うと、処理時間が著しくかかるのだ。
SQLiteは、データベースファイルが一つのファイルにまとまっており、このファイルを保護しながらデータ更新を行っている。
そのため、連続してデータ更新処理をする場合は、トランザクション内で行う必要があるのだ。
具体的には、
トランザクションを開始し、
(void)sqlite_exec(db, “BEGIN”, NULL, NULL, &errmsg);
データ追加等の処理を行い、
COMMIT命令により、トランザクション終了。
(void)sqlite_exec(db, “COMMIT”, NULL, NULL, &errmsg);
というような流れになる。
比べてみると分かるが、処理時間は劇的に変わる。