标签: sqlalchemy

子查询中 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
查看次数

Postgres 不返回有关 array_agg 查询的数据,如下所示

当特定图书馆中没有书籍数据时,就会出现问题。考虑以下工作场景。

桌子 library

--------------------------------
| id |    name     |    owner  |
--------------------------------
|  1 |     ABC     |     A     |
|  2 |     DEF     |     D     |
|  3 |     GHI     |     G     |
--------------------------------
Run Code Online (Sandbox Code Playgroud)

桌子 books

--------------------------------
| id |    title    |  library  |
--------------------------------
|  a |     xxx     |     1     |
|  b |     yyy     |     1     |
|  c |     zzz     |     2     |
--------------------------------
Run Code Online (Sandbox Code Playgroud)

现在,当我进行如下查询时:

SELECT library.name, array_agg(b.title) AS book_list FROM library, 
(SELECT title FROM books WHERE …
Run Code Online (Sandbox Code Playgroud)

postgresql join array coalesce sqlalchemy

5
推荐指数
2
解决办法
312
查看次数

如何在SQLAlchemy中设置自动增量值?

这是我的代码:

    class csvimportt(Base):
     __tablename__ = 'csvimportt'

      #id = Column(INTEGER, primary_key=True, autoincrement=True)
      aid = Column(INTEGER(unsigned=True, zerofill=True),
          Sequence('article_aid_seq', start=1001, increment=1),
          primary_key=True)
Run Code Online (Sandbox Code Playgroud)

我想设置一个从 1000 开始的自动增量值。我该怎么做?

postgresql orm python sqlalchemy

5
推荐指数
1
解决办法
6万
查看次数