我目前正在使用Python与SQLite,并想知道多个线程是否同时读取和写入数据库是安全的。 SQLite是否处理作为队列进入的数据,或者有哪种机制可以阻止数据损坏?
答案 0 :(得分:3)
这也是我的问题。 SQLite使用某种锁定机制阻止您对DB执行并发操作。但是这是我在db很小的时候使用的一个技巧。您可以将所有表数据选择到内存中并对其进行操作,然后更新原始表。
正如我所说,这只是一个伎俩,并不总能解决问题。
我建议制作你的技巧。
答案 1 :(得分:2)
SQLite有许多强大的锁定机制来确保数据不会被破坏,但问题是如果你有多个线程同时读取和写入数据你会遭受相当严重的损失在性能方面,因为他们都绊倒了其他人。它不打算以这种方式使用,即使它确实有效。
如果这是您的预期使用模式,您可能希望查看某种类型的共享数据库服务器。他们对并发操作有更好的支持。