Don't list every item just to get count

This emby era logic now becomes a serious performance problem on very huge folders. Use the proper item count query for most common cases.
This commit is contained in:
gnattu 2025-12-02 00:34:22 +08:00
parent daca285568
commit a78c3385c9
1 changed files with 6 additions and 18 deletions

View File

@ -668,34 +668,22 @@ namespace MediaBrowser.Controller.Entities
}
}
var result = GetItems(new InternalItemsQuery(user)
return LibraryManager.GetCount(new InternalItemsQuery(user)
{
Recursive = false,
Limit = 0,
Parent = this,
DtoOptions = new DtoOptions(false)
{
EnableImages = false
}
Parent = this
});
return result.TotalRecordCount;
}
public virtual int GetRecursiveChildCount(User user)
{
return GetItems(new InternalItemsQuery(user)
return LibraryManager.GetCount(new InternalItemsQuery(user)
{
Recursive = true,
Parent = this,
IsFolder = false,
IsVirtualItem = false,
EnableTotalRecordCount = true,
Limit = 0,
DtoOptions = new DtoOptions(false)
{
EnableImages = false
}
}).TotalRecordCount;
IsVirtualItem = false
});
}
public QueryResult<BaseItem> QueryRecursive(InternalItemsQuery query)