8

SQLite Swift で一括挿入を実行しようとしています。ただし、コードが正しいかどうかは 100% わかりません。

私が落ち着いたSwiftコードは(時間的に最高のパフォーマンスを提供したため)次のとおりです。

do {
   try DB.transaction { () -> Void in
     for index in 0...num_docs {
       table.insert(data <- "test", data_num <- index)
      } 
    } 
} catch _ {
 throw DataAccessError.Transaction_Error
}

編集 - -

次のコードを迅速に使用すると、10000 個のドキュメントを挿入すると、+/- 12 秒から 0.8 秒に短縮されます。話がうますぎる。

  let docsTrans = DB.prepare("INSERT INTO TEST_DB (data, data_num) VALUES (?,?)")
    do {
       try DB.transaction(.Deferred) { () -> Void in
         for index in 0...num_docs {
           try docsTrans.run("test", index)
          } 
        }
     } catch _ {
            throw DataAccessError.Insert_Error
        }
4

0 に答える 0