假设我们有以下查询:
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