启用查询的属性的性能如何?

时间:2018-12-06 23:19:02

标签: python flask sqlalchemy

我有一个使用flask和sqlalchemy的大型代码库,可在几十个地方访问类似于以下代码块的属性字符串:

整个代码库中的代码变化:

jobs = job.query.all()
for each_job in jobs:
    print(job.company)

我想在不更改大量代码的情况下将公司从字符串更改为类,所以我尝试使用query enabled properties

当前

"""
" Job model
"""
class job(db.Model):
    id = db.Column('id', db.Integer, primary_key = True)
    role = db.Column(db.Text)
    company = db.Column(db.Text)

建议

"""
" Job model
"""
class job(db.Model):
    id = db.Column('id', db.Integer, primary_key = True)
    role = db.Column(db.Text)

    company_id = db.Column(db.Integer, db.ForeignKey('company.id'))
    tied_company = db.relationship('contact', lazy='select')

    def _get_company(self):
        theCompany = company.query.with_parent(self).all()
        return theCompany.name
    company = property(_get_company)


"""
" Company model
"""
class job(db.Model):
    id = db.Column('id', db.Integer, primary_key = True)
    name = db.Column(db.Text)

我们尚未使用启用查询的属性,我很好奇是否存在缺点。可能会对使用数十个地方的性能产生负面影响?它总是总是热切地加载,您得到的查询时间会略长吗?

0 个答案:

没有答案