mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-05-04 07:46:32 +01:00
Optimize Validator and Filter Performance
This commit is contained in:
@@ -36,6 +36,7 @@ public class BaseItemConfiguration : IEntityTypeConfiguration<BaseItemEntity>
|
||||
builder.HasIndex(e => e.Path);
|
||||
builder.HasIndex(e => e.ParentId);
|
||||
builder.HasIndex(e => e.OwnerId);
|
||||
builder.HasIndex(e => e.Name);
|
||||
builder.HasIndex(e => e.ExtraType);
|
||||
builder.HasIndex(e => new { e.ExtraType, e.OwnerId });
|
||||
builder.HasIndex(e => e.PresentationUniqueKey);
|
||||
|
||||
@@ -15,6 +15,7 @@ public class PeopleBaseItemMapConfiguration : IEntityTypeConfiguration<PeopleBas
|
||||
builder.HasKey(e => new { e.ItemId, e.PeopleId, e.Role });
|
||||
builder.HasIndex(e => new { e.ItemId, e.SortOrder });
|
||||
builder.HasIndex(e => new { e.ItemId, e.ListOrder });
|
||||
builder.HasIndex(e => e.PeopleId);
|
||||
builder.HasOne(e => e.Item);
|
||||
builder.HasOne(e => e.People);
|
||||
}
|
||||
|
||||
@@ -18,6 +18,8 @@ public class UserDataConfiguration : IEntityTypeConfiguration<UserData>
|
||||
builder.HasIndex(d => new { d.ItemId, d.UserId, d.IsFavorite });
|
||||
builder.HasIndex(d => new { d.ItemId, d.UserId, d.LastPlayedDate });
|
||||
builder.HasIndex(d => new { d.UserId, d.ItemId, d.LastPlayedDate });
|
||||
builder.HasIndex(d => new { d.UserId, d.Played, d.ItemId });
|
||||
builder.HasIndex(d => new { d.UserId, d.IsFavorite, d.ItemId });
|
||||
builder.HasOne(e => e.Item).WithMany(e => e.UserData);
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,45 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace Jellyfin.Database.Providers.Sqlite.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class AddBaseItemNameIndex : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_UserData_UserId_IsFavorite_ItemId",
|
||||
table: "UserData",
|
||||
columns: new[] { "UserId", "IsFavorite", "ItemId" });
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_UserData_UserId_Played_ItemId",
|
||||
table: "UserData",
|
||||
columns: new[] { "UserId", "Played", "ItemId" });
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_BaseItems_Name",
|
||||
table: "BaseItems",
|
||||
column: "Name");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropIndex(
|
||||
name: "IX_UserData_UserId_IsFavorite_ItemId",
|
||||
table: "UserData");
|
||||
|
||||
migrationBuilder.DropIndex(
|
||||
name: "IX_UserData_UserId_Played_ItemId",
|
||||
table: "UserData");
|
||||
|
||||
migrationBuilder.DropIndex(
|
||||
name: "IX_BaseItems_Name",
|
||||
table: "BaseItems");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -362,6 +362,8 @@ namespace Jellyfin.Server.Implementations.Migrations
|
||||
|
||||
b.HasIndex("ExtraType");
|
||||
|
||||
b.HasIndex("Name");
|
||||
|
||||
b.HasIndex("OwnerId");
|
||||
|
||||
b.HasIndex("ParentId");
|
||||
@@ -1446,8 +1448,12 @@ namespace Jellyfin.Server.Implementations.Migrations
|
||||
|
||||
b.HasIndex("ItemId", "UserId", "Played");
|
||||
|
||||
b.HasIndex("UserId", "IsFavorite", "ItemId");
|
||||
|
||||
b.HasIndex("UserId", "ItemId", "LastPlayedDate");
|
||||
|
||||
b.HasIndex("UserId", "Played", "ItemId");
|
||||
|
||||
b.ToTable("UserData");
|
||||
|
||||
b.HasAnnotation("Sqlite:UseSqlReturningClause", false);
|
||||
|
||||
Reference in New Issue
Block a user