sql - 在 Postgres 中使用 MAX 函数或 DESC 的最大记录

标签 sql postgresql

我需要从 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 将必须对所有记录进行排序。

有时数据库有一些可能适用的非常具体的优化(例如可以识别具有 limitorder by 的特殊情况的优化)。我认为在这种情况下不适用。

关于sql - 在 Postgres 中使用 MAX 函数或 DESC 的最大记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39658688/

相关文章:

mysql - sql- 查询以查看 URL 的所有主机名及其计数

sql - 插入当前日期和时间

sql - 使用 Oracle 表类型执行动态 native SQL 会出现无效标识符错误

postgresql - 如何制作快速的 pg_trgm DESC(降序)?

node.js - 处理 Postgres 表中所有数据的最快方法?

sql - 使用 postgreSQL 按表填充分组

MySQL 查询 2 个表并从 2 列创建新列

sql - Postgres : What's the best index for 'SELECT * FROM t WHERE a < CURRENT_TIMESTAMP ORDER BY b' ?

sql - 检查表名是否包含日期

postgresql - 使任何缓存失效(刷新)的合理时间间隔是多少?