【发布时间】:2015-01-11 07:06:22
【问题描述】:
我有一个表继承自另一个表,并且有超过 10,000 行和 10 列。 我正在从 Input 中读取 10,000 多个项目。对于每个项目,我都会查询表以查看数据是否不存在。 在这种情况下,我将它插入到表中。 一个简化的例子如下:
class Port(Interface):
__tablename__ = 'ports'
Int_Class_ID = Column(Integer, ForeignKey('interfaceitems.Int_Class_ID', ondelete='cascade'), primary_key=True)
__mapper_args__ = {
'polymorphic_identity': 'ports',
}
Name = Column(Text)
Locked = Column(Boolean)
UniqueIdentifier = Column(Text, index=True)
然后我做:
portList = Session.query(Port).filter(Port.UniqueIdentifier == ID).all()
例如将调用 10,000 次。 但这很慢,需要 3 分钟,这对于代码的应用和执行的频率来说并不令人满意。 有什么方法可以提高性能吗?
【问题讨论】: