执行以下查询时,我收到sqlalchemy.exc.OperationalError
错误:
present_keys = self.engine.execute(
_sql.select(
[self.table.columns.qid, self.table.columns.did],
_sql.tuple_(self.table.columns.qid, self.table.columns.did).in_(
[(row['qid'], row['did']) for row in rows]
)
)
).fetchall()
问题是,查询适用于~5k这样的少量行,但是当我尝试以大约50~100k运行它时,我得到了这个错误。
我猜查询本身是一种非常糟糕的方式来做我想要的。 (我只是检查数据库中已有哪些行,因此我可以将需要插入的行与需要更新的行分开)。
解决这个问题的最佳选择是什么?进行不同的查询?在PostgreSQL / psycopg2中增加某种设置?