【发布时间】:2011-11-29 10:06:35
【问题描述】:
我想知道当 SQLite 有多个数据库同时插入/更新/删除时,它的行为如何?它是否产生多个进程,理论上比使用单个数据库/单个进程具有更好的并发性,或者它为每个进程使用相同的进程?
搜索文档并没有为 e 提供明确的答案。我知道 SQLite 不是多次写入的最理想环境,因为数据库作为单个文件存在。但这是否意味着多个文件 = 不同的写入过程?
databaseOne = connectToSqlite('databaseOne');
databaseTwo = connectToSqlite('databaseTwo');
function write()
queryDatabaseOne("INSERT SOMETHING INTO SOME_TABLE VALUES SOME_VALUES");
queryDatabaseTwo("INSERT SOMETHING INTO SOME_TABLE VALUES SOME_VALUES");
因此,两个不同的 sqlite 数据库,以及两个并行执行的插入,针对两个数据库中的表。
谢谢
【问题讨论】:
-
这是什么意思:'多个数据库同时插入/更新/删除'?也许您应该提供一个代码示例?
-
问题不在于特定的实现——它更多的是理论上的。但我知道这可能会令人困惑。我将在问题中添加一些伪代码以澄清一下。
-
我无法识别“queryDatabaseOne()”。它是非阻塞的吗?如果它是阻塞的,则插入不会并行执行。
标签: sqlite concurrency