如何在内存数据库中创建多个SQLite

时间:2012-07-14 09:54:00

标签: c++ sqlite in-memory-database

我在内存数据库中使用SQLite来实现我的C ++项目。在我的项目中,将有多个线程同时在内存数据库中读取和写入SQLite。但是,不同的线程正在读取和更新不同的表,但我仍然得到SQLite数据库表锁定错误。如果我没错,我知道SQLite将锁定整个数据库文件,而不是当一个编写器写入表时涉及的表。我假设内存数据库是相同的,虽然我不确定。所以我实际上想在内存数据库中创建多个来解决这个问题。所以我的问题是它是否可能,如果可能的话,怎么样?提前谢谢。

1 个答案:

答案 0 :(得分:0)

从整体的角度来看,即使SQLite不支持表或行级锁定(我确信它必须这样做)实现多个数据库只是为了绕过这听起来像是错误的方法。为了解决一个技术问题,最终你的应用程序将变得不必要复杂。

例如,如何在多个数据库之间连接表?你将如何同步交易?如果您不需要这样做,请问自己是否确实需要RDBMS的强大功能 - 基于Boost / STL的一系列对象/集合是否也不能正常工作,并且可能更快?

至于如何做到这一点。一些最好的信息实际上是在StackOverflow上。例如,查看this answer