有人可以建议一个更适合并发连接的轻量级数据库吗? 我将在多个线程上不断更新/插入/删除表中的行,所以我需要一些可以处理这个问题的东西。 数据库非常小。只有 2 个表,其中一个有 3 列和 150 行,仅更新,第二个表有 2 列和最多 15,000 行,不断被插入、拉取/删除,然后一旦表变小就插入新数据(基本的队列)。
这个逻辑会调用 SQLite,因为它是如此轻量级,但是事实上,我在 50 多个线程上进行调用基本上会影响我的性能,因为 SQLite 的锁定。 我所有的线程都在互相等待,基本上在大约 20 年后线程就没有意义了。
如果可以的话,我真的很想避免安装 mySQL 或 SQL Server 的完整副本。 我希望有更好的解决方案,但如果是这样的话,我会这样做。 (有人知道 SQL Express 4 是否更适合这个?)
我目前正在使用 SQLite.net 和实体 4.0 模型在 .net 框架 4.0 中进行开发,尽管这个问题应该适用于任何语言,因为 SQLite 被广泛使用。
提前致谢!
除了您已经提到的 MS SQL Express 之外,还有 Firebird 嵌入式 数据库服务器,对于您的用例来说,它的性能可能比 SQLite 更好。
或者,考虑减少线程数量,或使用自定义锁定/消息传递手动排队查询。仅仅因为您当前的代码滥用了该库而放弃最快的选项对我来说似乎不太正确。
如果您需要并发高事务数据库,使用 Amazon RDS、Google Cloud SQL 或 Azure SQL 数据库等托管服务可能是您的最佳选择。
但如果你想尝试NoSQL,它可能是一个更好的选择。 MongoDB 和 Redis 在那个时期开始流行。