哪个查询更可取以及为啥
Posted
技术标签:
【中文标题】哪个查询更可取以及为啥【英文标题】:which query is more preferable and why哪个查询更可取以及为什么 【发布时间】:2010-01-15 00:11:58 【问题描述】:我正在尝试自学 SQL,当然我想遵循最佳实践。
我创建了两个查询来查找最新记录:
select * from AppSurvey where
DateLastUsed >= ( SELECT MAX(DateLastUsed) FROM AppSurvey)
和
select top 1 * from AppSurvey order by DateLastUsed desc
其中一种方法比另一种更有效还是真的很重要
【问题讨论】:
如果 DateLastUsed 不是唯一的,这实际上是两个不同的查询。所以,从苹果到橘子。顶部的可以选择许多调查,而底部的只能抽样一项。 第一个查询可能返回多条记录,所以它们实际上并没有做同样的事情。在 MS-SQL 中,第二个查询更高效 【参考方案1】:此网站上有一篇与您想要了解的内容类似的帖子。
For autoincrement fields: MAX(ID) vs TOP 1 ID ORDER BY ID DESC
首选答案似乎是:“理论上,他们将使用相同的计划并几乎同时运行”
【讨论】:
【参考方案2】:如果您的 DateLastUsed 列不是唯一的,第一个可能会得到多行。
【讨论】:
以上是关于哪个查询更可取以及为啥的主要内容,如果未能解决你的问题,请参考以下文章
为啥使用 Celery 运行计划任务比使用 crontab 更可取?
为啥在片段中从 char* 转换为 std::string 比转换为 const char* 更可取?