我有一个每天运行一次的计划作业,在多个API之间同步实体。我正在寻找一种可靠的方法,使用LIMIT
和OFFSET
从我的数据库中提取“页面”数据,而不需要一次性下载GB的数据。
据我所知,在进程开始时启动事务并在其中重复执行SELECT
,将确保结果集中没有记录由于其他并发进程而被添加或跳过。
希望这能让我在事务开始时对数据库记录的确切状态执行同步作业,而且,值得知道的是,同步作业本身不会改变上述结果集中的记录。
我有一个每天运行一次的计划作业,在多个API之间同步实体。我正在寻找一种可靠的方法,使用LIMIT
和OFFSET
从我的数据库中提取“页面”数据,而不需要一次性下载GB的数据。
据我所知,在进程开始时启动事务并在其中重复执行SELECT
,将确保结果集中没有记录由于其他并发进程而被添加或跳过。
希望这能让我在事务开始时对数据库记录的确切状态执行同步作业,而且,值得知道的是,同步作业本身不会改变上述结果集中的记录。
1条答案
按热度按时间umuewwlo1#
正如Burak塞尔达尔和Frank Heikens所指出的,可重复的读隔离级别是一种解决方案,可以通过使用所需选项(使用
sqlx
)启动事务来轻松实现: