Python的sqlite3模块中的timeout参数是否会影响正常事务的速度?

时间:2016-07-05 08:51:15

标签: android python sqlite sl4a

我正在使用SL4A在Android手机上运行Python脚本(遗憾的是现在基本上死了)。 SL4A提供了Python 2.6。

此脚本(以及其他一些进程)使用内置在sqlite3模块中的Python访问sqlite数据库。由于它在极低端手机上运行,​​这会产生并发问题,因为进程之间的数据库写入发生冲突,导致频繁的OperationalError: database is locked异常。

为了解决这个问题,我已将timeout调用中的sqlite3.connect参数(请参阅文档的here)从默认的5秒增加到20秒。根据文档,这将增加sqlite在抛出database is locked异常之前等待的时间。

我的问题是:超时的增加是否会影响其他交易的性能,即那些未被其他流程阻止的交易?或者这仅仅是为了这个目的的暂停?

我担心的是因为我改变了这个参数后性能似乎有所下降。鉴于我工作的环境非常有限,我还没有弄清楚如何客观地测试性能,所以这种看法可能是错误的。

1 个答案:

答案 0 :(得分:1)

timeout仅在两个交易实际发生冲突时才有意义。