试图插入10000条记录sqlite ios swift

vin*_*i4u 2 sqlite ios swift sqlite.swift

我试图插入10000条记录,它需要45秒

这是我的代码

println(NSDate.new())
for index in 0...10000{
countrys.insert(name <- "abc")
//println(index)
}
println(NSDate.new())
Run Code Online (Sandbox Code Playgroud)

是这样做的吗?

Rob*_*Rob 8

问题是SQLite必须INSERT单独提交每个语句.您应该考虑使用交易.您可以使用transaction方法(执行BEGIN TRANSACTIONSQL)启动事务,然后使用commit它们提交它们(执行COMMITSQL).


例如:

db.transaction(.Deferred) { txn in
    for i in 0 ... 10000 {
        if countries.insert(name <- "abc").statement.failed {
            return .Rollback
        }
    }

    return .Commit
}
Run Code Online (Sandbox Code Playgroud)