Python sqlite3是否支持缓存型内存数据库?问题咨询
Python sqlite3 共享内存数据库问题解决
- Python内置的sqlite3完全支持可复用的共享内存数据库,你的问题核心是没开启URI模式。
- 你之前的代码
con = sqlite3.connect('file::memory:?cache=shared')生成磁盘文件,是因为sqlite3.connect默认把传入的字符串当作普通磁盘文件名处理,而file::memory:?cache=shared是SQLite专属的URI格式连接字符串,必须显式指定uri=True参数才能被正确识别。 - 正确的写法如下:
con = sqlite3.connect('file::memory:?cache=shared', uri=True) - 用这个方式创建的共享缓存内存数据库,关闭连接后再用相同的URI(带
uri=True)重新连接,就能访问之前存储的数据。 - 替代方案:如果只是单进程内多次连接共享内存库,也可以在第一次连接时设置
check_same_thread=False并复用同一个连接对象,但URI方式的通用性更强,适配多连接甚至跨进程场景。
内容的提问来源于stack exchange,提问作者DonH
相关产品推荐
相关产品推荐

