1

我在我的 C++ 项目的内存数据库中使用 SQLite。在我的项目中,将有多个线程同时读取和写入内存数据库中的 SQLite。但是,不同的线程正在读取和更新不同的表,但我仍然收到 SQLite 数据库表锁定错误。如果我没记错的话,我知道 SQLite 将锁定整个数据库文件,而不是当一位作家编写表时所涉及的表。尽管我不确定,但我认为内存数据库也是如此。所以我实际上想创建多个内存数据库来解决这个问题。所以我的问题是有可能吗?如果可能的话,怎么做?先感谢您。

4

1 回答 1

0

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

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

至于怎么做。一些最好的信息实际上是在 StackOverflow 上。例如,看看这个答案

于 2012-07-14T11:19:36.820 回答