私のアプリでは、私は各テーブルの何千ものレコードです。私は複数のテーブルの挿入があります。私はfmdbを使用しています。そして、データを挿入するために、私はFMDatabaseQueueを使用しています:私は約15のテーブルに、上記のように、データを挿入していますFMDBデータの挿入時間
DBManager.GetQueue().inTransaction { (db, rollback) in
var query: String = String()
for obj in chatThreads
{
query += "insert or replace into \(TABLE_NAME) (\(COLUMN_THREAD_ID), \(COLUMN_CHAT_NAME), \(COLUMN_DATE_TIME)) values (\(obj.threadId), '\(obj.chat_name)', '\(obj.date_time)');"
}
if !(db.executeStatements(query)) {
}
}
。 今、問題は、FMDatabaseQueueは、データを1つずつテーブルに挿入することです。これは、動作する方法です。私は、最初の2つのクラスにデータを挿入しているので、スレッドセーフティのためにFMDatabaseQueueを使用しています。
私の質問は、これを並列プロセスにする方法があるため、同時に異なるテーブルにデータを挿入できることです。そうでない場合は、正しいパスでより良いパフォーマンスを達成するために私に指示してください。 バッチ挿入も試しましたが、同時に複数の挿入を行うとdbロックが発生する可能性があります。
ありがとうございました。