SQLite替代更高的并发事务

时间:2011-10-20 12:00:57

标签: sqlite concurrency sql-server-express

有人能建议一个更适合并发连接的轻量级数据库吗?我会在多个线程上不断更新/插入/删除我的表中的行,所以我需要能够处理这个问题的东西。数据库非常小。只有2个表,一个有3列,150行只更新,第二个表有2列,最多15,000行,不断插入,拉/删,然后插入新数据表变小(基本队列)。

这个逻辑会调用SQLite,因为它是如此轻量级,但是我在50多个线程上进行调用的事实基本上是因为SQLite的锁定而导致我的性能下降。我的所有线程都在等待,基本上在大约20之后使线程毫无意义。

如果可以的话,我真的想避免安装说mySQL或SQL服务器的完整副本。我希望有一个更好的解决方案,但如果是这样的话,我会这样做。 (任何人都知道SQL Express 4是否更适合这种情况?)

我目前正在使用SQLite.net和实体4.0模型在.net框架4.0中开发,尽管这个问题应该适用于任何语言,因为SQLite被广泛使用。

提前致谢!

1 个答案:

答案 0 :(得分:0)

除了你已经提到的MS SQL Express之外,还有Firebird embedded数据库服务器,也许它会比你的用例在SQLite上表现更好。

或者,考虑使用自定义锁定/消息传递手动减少线程数或队列查询。仅仅因为您当前的代码滥用库而切换到最快的选项对我来说似乎不太合适。