【发布时间】:2014-10-11 22:54:02
【问题描述】:
是否可以在多个 Python 进程之间使用 SQLAlchemy 共享内存中的 SQLite 数据库?所有应用程序都在读取和写入它。如果有,是否可取?
【问题讨论】:
标签: python sqlite sqlalchemy
是否可以在多个 Python 进程之间使用 SQLAlchemy 共享内存中的 SQLite 数据库?所有应用程序都在读取和写入它。如果有,是否可取?
【问题讨论】:
标签: python sqlite sqlalchemy
不,您不能在进程之间共享内存中的 SQLite 数据库。内存中的 SQLite 数据库对创建它的 连接 是私有的;即使在同一进程中,与:memory: 的新连接也会创建一个新数据库。 SQLAlchemy 没有解除这个限制。
您只能共享基于文件的数据库。 SQLite 使用 system of locking 来实现这一点。
也就是说,SQLite 并不是并发数据库访问的最佳选择。如果性能是一个问题,使用单独的服务器来管理多个客户端(例如 MySQL 或 PostgreSQL)的数据库是更好的选择。
【讨论】: