我有一个sqlite3数据库,我想从多个线程写入它。我有多个想法,但我不确定应该实施哪些。
这些不同方法有哪些进展,最有可能取得丰硕成果?还有其他可能性吗?
答案 0 :(得分:0)
尝试使用https://pypi.python.org/pypi/sqlitedict 围绕Python的sqlite3数据库的轻量级包装器,具有类似dict的接口和多线程访问支持。 但考虑到“并发请求仍在内部序列化,因此这种”多线程支持“并没有给您带来任何性能优势。它是Python中sqlite限制的解决方法。”
PostgreSQL,MySQL等可以一次性为多个连接提供更好的性能
答案 1 :(得分:0)
之前我使用过方法1。它是最简单的编码方式。由于该项目有一个小网站,每个查询只需几毫秒。可以及时处理所有用户请求。
之前我也使用过方法3。因为当查询需要更长的时间时,最好对查询进行排队,因为频繁"检测并等待"这里毫无意义。并且需要一个经典的消费者 - 生产者模型。这需要更多时间来编码。
但是如果查询真的很重且经常发生。我建议看看像MS SQL / MySQL这样的其他数据库。