2

我正在尝试插入 10000 条记录,需要 45 秒

这是我的代码

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

这是这样做的吗?

4

1 回答 1

8

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


例如:

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

    return .Commit
}
于 2015-06-29T05:10:35.297 回答