Python SQLAlchemy在大表中缓慢更新

Python SQLAlchemy在大表中缓慢更新,python,mysql,sql,database,sqlalchemy,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}) 我认为,如果密钥列表变大,时间应该呈线性增长,但事实并非如此 我的意思是:我有一个大约30

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

for keyword in keys_list:
         result = s.query(MyTable).filter(MyTable.keyword == keyword).update({'a':a, 'b':b})
我认为,如果密钥列表变大,时间应该呈线性增长,但事实并非如此

我的意思是:我有一个大约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))

您是否向关键字列添加了索引?您更新的值是否会根据关键字进行更改?此外,基础表上存在哪些索引(因为缓慢的一个可能原因是不断重新写入索引)MyTable类的外观如下:id=column(Integer,primary_key=True,autoincrement=True)keyword=column(String(250),nullable=False,index=True,unique=True)a=Column(字符串(250))b=Column(字符串(250))