我有一个 sqlite3 数据库,我想从多个线程写入它。我有多个想法,但不确定应该实现哪个。
- 创建多个连接,如果数据库被锁定则检测并放弃
- 使用一个连接并尝试使用序列化连接(这似乎没有在 python 中实现)
- 有一个单一连接的后台进程,它收集来自所有线程的查询,然后代表它们执行它们
- 忘记 SQlite,使用 Postgresql 之类的东西
这些不同方法的进展是什么?哪种方法最有可能取得成果?还有其他可能吗?
最佳答案
尝试使用https://pypi.python.org/pypi/sqlitedict 一个围绕 Python 的 sqlite3 数据库的轻量级包装器,具有类似 dict 的接口(interface)和多线程访问支持。 但考虑到“并发请求仍在内部序列化,因此这种“多线程支持”不会给您带来任何性能优势。它是 Python 中 sqlite 限制的一种解决方法。”
PostgreSQL、MySQL 等为您提供一次多个连接的更好性能
关于python - 在 Python 中用 SQLite 编写多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25747192/