sql - 哪一种是更快/更好的 sql 实践?

标签 sql query-optimization

假设我有一个 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/

相关文章:

sql - 如果条件通过,如何退出存储过程

mysql - 在mysql表中某一列的特定位置插入数据

mysql - 与 MyISAM 相比,innodb 的距离搜索非常慢

mysql - MYSQL中针对子查询的查询优化?

database - 查询冗余和优化的地方

SQL:有关 LEFT OUTER JOIN 的帮助

sql - 具有多列输入的 SQL 函数中的嵌套 Case 表达式

mysql - 如何在 MYSQL 函数内执行 SELECT from List SQL 查询?

mysql - 从 SQL 中的多对多关系中查找最大值

mysql - 我希望使用 MySql 优化此查询