优化多个sqlalchemy查询

时间:2018-01-30 07:48:09

标签: python postgresql sqlalchemy

我有很多用户,想要获得他们购买的所有产品的清单。我目前用

做到这一点
list_of_products = [user.products.all() for user in all_users]

User表和Product表通过多对多关系连接。我注意到这不能很好地扩展。如果用户数量增加,可能需要很长时间。我试图了解这是否是由于执行呼叫时的开销,还是仅仅因为需要更多产品而进行扩展?

基本上,检索用户列表的所有产品的最快方法是什么。

以防万一,这是表格

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    ...

    products = db.relationship('product',
                               secondary=sales,
                               lazy='dynamic')

class Product(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    ...

sales = db.Table(
    'sales',
    db.Column('product_id', db.Integer, db.ForeignKey('product.id')),
    db.Column('user_id', db.Integer, db.ForeignKey('user.id'))
)

0 个答案:

没有答案