我在SQLite数据库中有大约200个表,其中包含数百到数百万行。这些表由OLTP应用程序的许多并发进程查询。
需要通过完全刷新偶尔更新每个表 - 删除所有行,然后在事务中插入不同的行。对于最大的表,这需要将近一分钟,但这样的刷新每天只会发生几次表。
我需要确保读者不需要等待刷新完成 - 应该使用旧版本的表数据直到事务完成,然后使用新版本。如果需要,任何等待都应该是毫秒而不是秒或分钟。
是否可以实现,即避免任何数据库锁或表锁阻止读者?我不关心作家,他们可以等待和序列化。
这是一个带有pysqlite的Python应用程序。