10000 レコードを挿入しようとしていますが、45 秒かかります
これは私のコードです
println(NSDate.new())
for index in 0...10000{
countrys.insert(name <- "abc")
//println(index)
}
println(NSDate.new())
このやり方ですか?
10000 レコードを挿入しようとしていますが、45 秒かかります
これは私のコードです
println(NSDate.new())
for index in 0...10000{
countrys.insert(name <- "abc")
//println(index)
}
println(NSDate.new())
このやり方ですか?
問題は、SQLite が各INSERT
ステートメントを個別にコミットする必要があることです。トランザクションの使用を検討する必要があります。transaction
メソッド (SQL を実行する) でトランザクションを開始し、BEGIN TRANSACTION
それを使用commit
してそれらをコミットできます ( COMMIT
SQL を実行します)。
例えば:
db.transaction(.Deferred) { txn in
for i in 0 ... 10000 {
if countries.insert(name <- "abc").statement.failed {
return .Rollback
}
}
return .Commit
}