大佬教程收集整理的这篇文章主要介绍了linux – SQLite WAL性能提升,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我每隔3秒就向DB写入大量数据.为了使写入过程快速,我在sqlite中使用WAL模式.虽然,我有性能问题.似乎每当检查点发生时,它需要太长时间,处理器不能在不到3秒的时间内完成.
为了改善这一点,我创建了一个线程,在10次写入调用之后,它从主线程接收消息队列,而不是检查点.
关于WAl.如果您经常编写大量数据,则应考虑将写入包装到更大的事务中.通常,每个INSERT都是自动提交的,sqlite必须等到数据真正刷新到磁盘或闪存 – 这显然非常慢.如果将多个写入包装到一个事务中,sqlite不必担心每一行,并且可以一次刷新多行,最有可能是单个闪存写入 – 这要快得多.
因此,如果可以的话,尝试将至少几百个写入包装到一个事务中.
根据我的经验,WAL on flash并没有真正起作用,我发现坚持旧的日记模式更有利.例如,Android 4不为其sqlite数据库使用WAL模式,可能是有原因的.正如您所注意到的,在某些情况下,WAL有一种无限制增长的趋势(但是,如果事务很少发生,它也会发生 – 所以一定要偶尔这样做).
以上是大佬教程为你收集整理的linux – SQLite WAL性能提升全部内容,希望文章能够帮你解决linux – SQLite WAL性能提升所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。