SQLite for client-server

rpg*_*rpg 9 sqlite performance client-server

我在Stackoverflow上看过几个SQLite性能问题,但重点是网站,我正在考虑在客户端 - 服务器场景中使用这个数据库:

  • 我预计现在一台服务器有1-10个客户端,未来可能达到50个或更多.
  • 读取略多于写入
  • 数据库将位于服务器进程后面(即:不通过网络使用直接数据库访问)

与使用PostgreSQL相比,使用SQLite会使应用程序的响应性降低吗?我的直觉告诉我,对于这些负载应该没问题,但也许有人对这种情况有一些实际经验.

Lir*_*evi 13

我确实使用SQLite作为与~10个并发用户一起使用的主要客户端/服务器产品,我对此决定深感遗憾.在我看来 - 由于其精细的锁定粒度,PostgreSQL比SQLite更适合客户端/服务器场景.

当有人需要写东西时,当整个数据库被锁定时,你根本无法走得太远.

我非常喜欢SQLite(我甚至编写了一个用于比较SQLite数据库的商业实用程序 - SQLite Compare,但是当你有客户端/服务器场景时,我认为它不符合要求.

即使SQLite的的作者,它应该被用来作为自定义文件格式,而不是作为一个完全成熟的数据库服务器的替代品.我希望我更认真地听取他的意见..

  • 实际上 - 我有一个以多个客户端进程的名义访问数据库的服务器。所以呢?就我而言 - 每个客户端都由服务器中的一个工作线程表示,当您有多个客户端在服务器上工作时,您还将有多个线程同时在数据库引擎上工作。由于很难预先预测实际执行数据库访问的方式(即读取与写入访问模式),因此我强烈建议不要从一开始就做出这样的限制性决定(使用 SQLite 而不是 PostgreSQL)。 (2认同)