我正在尝试在包含 100000 行的数据库中选择 100 行并在之后更新这些行。
问题是我不想为此目的两次访问数据库,因为更新仅将这些行标记为“已读”。
有什么办法可以在java中使用简单的jdbc库来做到这一点?(希望不使用存储过程)
更新:好的,这里有一些澄清。
有几个相同应用程序的实例运行在不同的服务器上,它们都需要选择根据 creation_date 列排序的 100 条“未读”行,读取其中的 blob 数据,将其写入文件并将该文件通过 ftp 传输到某个服务器。(我知道史前,但要求是要求)
读取和更新部分是为了确保每个实例获得不同的数据集。(按顺序,像赔率和偶数这样的技巧不会起作用:/)
我们选择数据进行更新。数据通过线路传输(我们等待并等待),然后我们将它们更新为“READ”。然后释放锁定以进行阅读。整个事情花费的时间太长了。通过同时读取和更新,我想减少锁定时间(从我们使用 select 进行更新到实际更新的时间),以便使用多个实例会增加每秒读取的行数。
还有想法吗?