Python SQLalchemy删除很慢

Python SQLalchemy删除很慢,python,postgresql,sqlalchemy,Python,Postgresql,Sqlalchemy,我有一个postgresql db表,有200多万条记录。我需要把这些缩小到10万个 我有一个要筛选的值列表: codes = ['17389', '77289', ...] 我有一个有效的炼金术声明: stmt = BarCodes.__table__.delete().where(~BarCodes.code.in_(codes)) 唯一的问题是这个语句需要很长时间才能运行。我猜它每次都要通过代码来检查值。有没有更有效的方法可以做到这一点?它编译为单个查询,但根据您的SQLA版本,将大量

我有一个postgresql db表,有200多万条记录。我需要把这些缩小到10万个

我有一个要筛选的值列表:

codes = ['17389', '77289', ...]
我有一个有效的炼金术声明:

stmt = BarCodes.__table__.delete().where(~BarCodes.code.in_(codes))

唯一的问题是这个语句需要很长时间才能运行。我猜它每次都要通过代码来检查值。有没有更有效的方法可以做到这一点?

它编译为单个查询,但根据您的SQLA版本,将大量列表编译到IN子句可能需要相当长的时间。更不用说查询本身可能需要很长时间才能执行,特别是如果您有很多级联外键约束。您好,您有列代码索引吗?@snakecharmerb最终解决了我的问题。我还需要为列代码添加一个索引。我还必须创建一个临时表,因为我的列表是从excel表中提取出来的。