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