【发布时间】:2019-03-22 08:13:15
【问题描述】:
我想知道如果我使用表中的索引查询唯一 id 以提高性能,是否必须在 DB2 中使用 FETCH FIRST n ROWS ONLY 语句或在 MySQL 中使用 LIMIT 语句。或者sql提供者是否已经注意到,最多只有一个结果并在找到该行时停止查询?
查询示例:
DB2:SELECT * FROM myTable WHERE id = 1 FETCH FIRST 1 ROWS ONLY
MySQL:SELECT * FROM myTable WHERE id = 1 LIMIT 1
有人想过这个吗?
【问题讨论】:
-
在 mylsq 中,对 select 的结果应用了限制.. 所以你没有性能提升
-
那么
FETCH FIRST 1 ROWS ONLY呢? -
我不在 db2 但.. 我认为是一样的.. 这种限制/过滤器只能应用于结果集.. 性能基于结果集检索跨度>
-
如果您已经在
id上有一个唯一索引,那么通常优化器必须知道这样的查询不能返回多于一行。如果您在id上没有这样的唯一索引,那么帮助优化器构建更好的访问计划可能是值得的。
标签: mysql sql postgresql db2