我有一个多线程Linux C++应用程序,需要一个高性能的参考数据查找工具.我一直在考虑使用内存中的SQLite数据库,但是在我的多线程环境中看不到这种方法可以扩展.
即使所有事务都是只读的,默认线程模式(序列化)似乎也会受到单个粗粒度锁定的影响.此外,我不相信我可以使用多线程模式,因为我无法创建到单个内存数据库的多个连接(因为每次调用sqlite3_open(":memory:",&db)都会创建一个单独的内存中数据库).
所以我想知道的是:在文档中是否有我遗漏的内容,并且可以让多个线程共享来自我的C++应用程序的相同内存数据库的访问权限.
或者,我可以考虑使用SQLite的替代方案吗?
sqlite ×1