SQLAlchemy在大表中缓慢更新

时间:2015-03-26 10:16:02

标签: python mysql sql database sqlalchemy

我在项目中使用SQLAlchemy,并且速度有问题。 任务很简单 - 遍历python列表行,在数据库表中查找行,更新行中的一些值。我试图这样做(不同的变化:

for keyword in keys_list:
         result = s.query(MyTable).filter(MyTable.keyword == keyword).update({'a':a, 'b':b})

我认为如果keys_list变大,那么时间量应该是线性的。但它不是。

我的意思是:我有一个大约3000行的小测试表,脚本工作正常,不是很快,但足够(大约5秒)。在一个制作中我有300000行表,所以它比测试表大100倍。我希望执行的时间应该是大约5 * 100秒,这是可以接受的。但是只需要花费更长的时间来完成前1000行。

在另一个项目中,我使用了相同数量的数据,但是使用了原始的sql - 它运行良好。现在我想使用SQLAlchemy,我认为它应该可行,但我在数据库中缺乏知识,这就是它无法正常工作的原因。

请帮忙。

UPD1: MyTable类看起来像这样:

id = Column(Integer, primary_key=True, autoincrement=True)
keyword = Column(String(250), nullable=False, index=True, unique=True)
a = Column(String(250))
b = Column(String(250))

0 个答案:

没有答案