小编McS*_*onk的帖子

子查询中 count(*) 的性能

假设我们有以下查询:

1.

    SELECT COUNT(*) FROM some_big_table WHERE some_col = 'some_val'
Run Code Online (Sandbox Code Playgroud)

2.

    SELECT COUNT(*) FROM ( SELECT * FROM some_big_table WHERE some_col = 'some_val' )
Run Code Online (Sandbox Code Playgroud)

之前的任何查询是否性能更好?或者他们是一样的?

我使用的是 Postgresql 9.4,但是与其他 DBMS 有很大不同吗?

PS:我问这个问题是因为 SQLAlchemy 是一个基于 Python 的 ORM,COUNT它默认在子查询上执行操作,但有一个选项可以强制它COUNT直接在查询上执行。

postgresql performance subquery postgresql-9.4 sqlalchemy query-performance

5
推荐指数
3
解决办法
8679
查看次数