是在sqlite中自动处理并发?

时间:2014-02-20 20:56:20

标签: java sqlite tomcat

在我的服务器上,为了加快速度,我已经为我的sqlite odbc源分配了一个连接池。

如果两个或多个主机想要更改我的数据,会发生什么? 这些多个连接是否由sqllite自动处理?

2 个答案:

答案 0 :(得分:2)

简而言之:这不是一个好的解决方案。

说明

SQLite支持无限数量的同时阅读器,但它只允许一个作者在任何时刻。

对于你的情况,它并不好。

建议:使用其他RDBMS。

答案 1 :(得分:2)

您可以阅读this thread

如果大多数并发访问都是读取(例如SELECT),SQLite可以很好地处理它们。但如果你开始同时写,锁争用可能会成为一个问题。然后很大程度上取决于文件系统的速度,因为SQLite引擎本身非常快,并且有许多聪明的优化来最小化争用。特别是SQLite 3。

对于大多数桌面/笔记本电脑/平板电脑/手机应用程序,SQLite足够快,因为没有足够的并发性。 (Firefox广泛使用SQLite来存储书签,历史等)。

对于服务器应用程序,前段时间有人说在一般情况下(例如博客,论坛)SQLite数据库可以完美地处理每天少于100K的页面浏览量,而我还没有看到任何相反的证据。事实上,使用现代磁盘和处理器,95%的网站和Web服务可以与SQLite一起使用。

如果您想要非常快速的读/写访问权限,请使用内存中的SQLite数据库。 RAM比磁盘快几个数量级。

check this