Mysql
 sql >> Base de données >  >> RDS >> Mysql

SQLAlchemy chargement avide de plusieurs relations

Pour une relation un-à-plusieurs ou plusieurs-à-plusieurs, il est (généralement) préférable d'utiliser subqueryload à la place, pour des raisons de performances :

session.query(Product).join(User.addresses)\
    .options(subqueryload(Product.orders),\
             subqueryload(Product.tags)).all()

Cela émet un SELECT séparé requêtes pour chacune des orders et tags .