假设我有一个 2 列表(id,标志)并且 id 是连续的。 我希望这个表包含很多记录。 我想定期选择未标记的第一行并更新它。途中的一些记录可能已经被标记了,所以我想跳过它们。
如果我存储我标记的最后一个 id 并在我的 select 语句中使用它,例如
select * from mytable where id > my_last_id order by id asc limit 1
或者只是获取第一个未标记的行,例如:
select * from mytable where flagged = 'F' order by id asc limit 1
谢谢!
最佳答案
如果您在标记上创建索引,则检索未标记的行几乎是一个即时操作。如果您总是按顺序更新它们,那么第一种方法就可以了。
关于sql - 哪一种是更快/更好的 sql 实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2515501/