SQLite性能优化一则
今天写段批量插入数据的代码,数据库用的是Sqllite,结果发现速度相当的慢。打开Log日志,发现每条insert执行的速度都超过了1s,甚觉奇怪,Sqllite的性能不至于这么差吧?
后来仔细研究,找到了这篇文章http://www.sqlite.com.cn/mysqlite/6/22.Html,里面的一段文字一语道破天机:
SQLite3 在不执行行事务处理的情況下不是很理想, 但SELECT速度相当快。……
sqlite在不开事务的情况下就是一种悲剧,因为它的多访问支持是建立在对文件的独占和共享基础上的。
于是我在批量插入数据前加上了Transaction:
PhoneRecord.transaction do
…
end
果然速度马上就有了质的提升。其实原因很好理解,事务处理有时不仅仅是为了保障数据一致性,对性能的提升也非常有益。
Previous post: 金山卫士
Next post: Baidu Sitemap
No Responses To This Post So Far(Rss)