Performance: Many-to-many relationships
MEDIUM IMPACT
This affects how quickly the page loads and updates when displaying or modifying related data across multiple tables.
from sqlalchemy.orm import joinedload posts = Post.query.options(joinedload(Post.tags)).all() for post in posts: tags = post.tags # loaded in one query for tag in tags: print(tag.name)
posts = Post.query.all() for post in posts: tags = post.tags # lazy loading inside loop for tag in tags: print(tag.name)
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Lazy loading in loop (N+1 queries) | Minimal DOM nodes | 1 reflow after data load | Low paint cost | [X] Bad |
| Eager loading with joinedload | Minimal DOM nodes | 1 reflow after data load | Low paint cost | [OK] Good |