我需要从 User 表中获取最新的用户。下面哪一个查询在 Postgres 中执行此操作的性能最好。?
Select MAX(u.id) from User u;
或
Select u.id from User u order by desc limit 1;
最佳答案
这是评论的详细说明。
如果您在 user(id)
上有一个索引,那么两个公式都应该使用该索引。我很确定他们会有基本相同的执行计划。
如果您没有(b 树)索引,那么我认为 max()
版本会更快。我认为它会一次读取数据并一次提取 max()
。 order by
将必须对所有记录进行排序。
有时数据库有一些可能适用的非常具体的优化(例如可以识别具有 limit
和 order by
的特殊情况的优化)。我认为在这种情况下不适用。
关于sql - 在 Postgres 中使用 MAX 函数或 DESC 的最大记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39658688/