SQLite的连接池在Java中 - 锁定数据库(SQLite Connection Pool in

2019-08-19 15:54发布

我已经读到SQLite的几个相关的线程在多线程环境中,但我无法找到一个明确的说法,所以请原谅我,我提出这个话题又一个的时间。

我需要访问从多个线程应用程序的数据库中执行UPDATE语句。 数据库本身可以是SQLite的或MySQL,这取决于用户的选择。 对于MySQL处理程序,我已经使用Tomcat-JDBC库中实现连接池。 现在我正在寻找SQLite的处理程序的最佳方法,因为正常的连接池不应该工作作为的SQLite只支持用于锁定整个数据库一次一个写作的连接。

如果我只是继续前进,使所有线程使用后另一个相同的连接一个(通过同步连接?),或者我应该创建使用保持着刚刚连接已经存在的Tomcat库连接池? 可能与一个连接的连接池是过大?

Answer 1:

既然是嵌入式数据库单个文件,池将很难是有益的。

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



文章来源: SQLite Connection Pool in Java - Locked Database