Java中的SQLite连接池 - 数据库锁定

3
我已经阅读了几篇关于SQLite在多线程环境下的相关帖子,但没有找到明确的说明,所以请原谅我再次提出这个话题。
我需要从多个线程访问应用程序的数据库来执行更新语句。数据库本身可以是SQLite或MySQL,具体取决于用户的选择。对于MySQL处理程序,我使用tomcat-jdbc库实现了连接池。现在我正在寻找SQLite处理程序的最佳方法,因为普通的连接池不起作用,因为SQLite仅支持一次写入连接,会锁定整个数据库。
我应该继续让所有线程依次使用同一个连接(通过同步连接?),还是应该使用已经存在的tomcat库创建只保留连接的连接池?一个只有一个连接的连接池是否过大?
1个回答

8
由于它是单文件嵌入式数据库,因此连接池几乎不会有益。

https://web.archive.org/web/20130410192252/http://sqlite.phxsoftware.com/forums/p/682/3034.aspx

由于原始网站已关闭,我将提供摘要:

我已经实现了连接池并使用1000个命令使用池化连接,与单个连接速度相比,池化速度更加接近。

Many non-pooled connections : 2875.0 ms
Many pooled connections     :   93.8 ms
Pooled with reset           :  546.9 ms
One Connection              :   46.9 ms

所以共享池并不是非常有益的。

http://www.sqlite.org/faq.html#q5

http://www.sqlite.org/threadsafe.html


第一个链接坏了 :( - pratnala

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接