python - 在 Python 中用 SQLite 编写多线程

标签 python multithreading postgresql sqlite

我有一个 sqlite3 数据库,我想从多个线程写入它。我有多个想法,但不确定应该实现哪个。

  1. 创建多个连接,如果数据库被锁定则检测并放弃
  2. 使用一个连接并尝试使用序列化连接(这似乎没有在 python 中实现)
  3. 有一个单一连接的后台进程,它收集来自所有线程的查询,然后代表它们执行它们
  4. 忘记 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/

相关文章:

带有哈希元素数组的 PostgreSQL jsonb_array_elements

python - 将带有 Assets 文件夹的 Dash 部署到 AWS Elastic Beanstalk

python - Google App Engine (Python) - 上传文件(图片)

windows - 如何从磁盘获得良好的并发读取性能

c# - 如何在 C# 中为构造函数使用多线程

database - 特定于 PostgreSQL 中某些数据库的 super 用户角色

sql - 如何使用事件记录查询检查 Rails 5 中是否不存在记录?

程序启动后 Python GUI 不更新信息

Python Tkinter 填充问题

java - 使用多线程设置线程优先级没有效果