如何解决Python的SQLite并发性?
| 假设我有一个巨大的SQLite文件(例如500 [MB])。 10个不同的“ 0”实例可以同时访问此文件并更新它的不同记录吗?注意,这里的重点是不同的记录。 例如,假设SQLite文件具有“ѭ1”行: 实例1将处理(并更新)行0-100000 实例2将处理(并更新)行100001-200000 ......................... 实例10将处理(并更新)行900001-1000000 这意味着,每个“ 0”实例将仅更新文件的唯一子集。请问这项工作有效,还是我会遇到严重的诚信问题?解决方法
更新,感谢AndréCaron。
您可以这样做,但是只有读取操作支持SQLite中的并发性,因为整个数据库都锁定在任何写入操作上。在这种情况下,SQLite引擎将返回SQLITE_BUSY状态(如果超过了默认的访问超时时间)。还应考虑到,这在很大程度上取决于为给定的OS和文件系统实现良好的文件锁定。通常,我不建议使用建议的解决方案,特别是考虑到DB文件很大,但是您可以尝试。
最好使用基于服务器进程的数据库(MySQL,PostgreSQL等)来实现所需的应用程序行为。
, 有些。一次只能有一个实例可以写入,这意味着并发写入将被阻止(请参阅SQLite FAQ)。您不会遇到完整性问题,但是我不确定您会真正从并发中受益,尽管并发取决于并发与否。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。