From 29d966f8c83418be985bc8cce5f3b7bf2771cc89 Mon Sep 17 00:00:00 2001 From: Junwei Zhao Date: Fri, 7 Nov 2025 15:07:47 +1100 Subject: [PATCH] Add time consuming debugging logs --- backend/app/api/music.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/backend/app/api/music.py b/backend/app/api/music.py index a7274df..a3e72cb 100644 --- a/backend/app/api/music.py +++ b/backend/app/api/music.py @@ -126,9 +126,12 @@ async def get_all_music( db: AsyncSession = Depends(get_db) ): """Get all music files with sorting - optimized for performance""" + import time from sqlalchemy import asc, desc from sqlalchemy.orm import noload + start_time = time.time() + # Don't load relationships for this endpoint (causes N+1 queries) query = select(Music).options(noload(Music.playlists)) @@ -144,10 +147,21 @@ async def get_all_music( query = query.order_by(desc(sort_column)) # Execute with limit and offset + query_start = time.time() result = await db.execute( query.offset(skip).limit(limit) ) + query_time = time.time() - query_start + + # Get results + fetch_start = time.time() music_list = result.scalars().all() + fetch_time = time.time() - fetch_start + + total_time = time.time() - start_time + + logger.info(f"Music list query: total={total_time:.3f}s, query={query_time:.3f}s, fetch={fetch_time:.3f}s, rows={len(music_list)}, skip={skip}") + return music_list