Home » General » SQLite性能优化一则

SQLite性能优化一则

今天写段批量插入数据的代码,数据库用的是Sqllite,结果发现速度相当的慢。打开Log日志,发现每条insert执行的速度都超过了1s,甚觉奇怪,Sqllite的性能不至于这么差吧?

后来仔细研究,找到了这篇文章http://www.sqlite.com.cn/mysqlite/6/22.Html,里面的一段文字一语道破天机:

SQLite3 在不执行行事务处理的情況下不是很理想, 但SELECT速度相当快。……
sqlite在不开事务的情况下就是一种悲剧,因为它的多访问支持是建立在对文件的独占和共享基础上的。

于是我在批量插入数据前加上了Transaction:

PhoneRecord.transaction do
    …
end
 

果然速度马上就有了质的提升。其实原因很好理解,事务处理有时不仅仅是为了保障数据一致性,对性能的提升也非常有益。

转发到新浪微博 转发到新浪微博

No Responses To This Post So Far(Rss)

Leave a Reply

Previous post:

Next post: