Вопросы к Поиску с Алисой
Преимущества использования joinedload и subqueryload при работе с отношениями «многие ко многим» в контексте SQLAlchemy:
Joinedload позволяет загружать объекты и их коллекции с помощью одного SQL-запроса. man.hubwiz.com При этом общее количество возвращаемых строк равно сумме размеров всех коллекций плюс одна дополнительная строка для каждого родительского объекта с пустой коллекцией. man.hubwiz.com Joinedload эффективен, когда размер коллекций относительно небольшой. man.hubwiz.com
Subqueryload полезен, когда JOIN неэффективен, например, при сложных или больших связанных данных. habr.com При использовании этой стратегии для загрузки 100 объектов генерируется два SQL-запроса. man.hubwiz.com Второй запрос возвращает общее количество строк, равное сумме размеров всех коллекций. man.hubwiz.com Используется INNER JOIN, запрашивается минимум родительских столбцов, только первичные ключи. man.hubwiz.com
Таким образом, joinedload лучше подходит для небольших коллекций, а subqueryload — для более крупных. man.hubwiz.com