大量消息收件箱完成第一层性能优化

This commit is contained in:
2026-08-10 17:09:51 +08:00 Unverified
parent 7731a343d7
commit e4f1d88ca1
6 changed files with 7024 additions and 4 deletions
@@ -0,0 +1,63 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Jiaowu.Api.Infrastructure.Persistence.Migrations.MySql
{
/// <inheritdoc />
public partial class OptimizeNotificationInboxIndexes : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropIndex(
name: "IX_Notifications_UserId_Category_CreatedAt",
table: "Notifications");
migrationBuilder.DropIndex(
name: "IX_Notifications_UserId_IsRead",
table: "Notifications");
migrationBuilder.CreateIndex(
name: "IX_Notifications_UserId_Category_CreatedAt_Id",
table: "Notifications",
columns: new[] { "UserId", "Category", "CreatedAt", "Id" });
migrationBuilder.CreateIndex(
name: "IX_Notifications_UserId_CreatedAt_Id",
table: "Notifications",
columns: new[] { "UserId", "CreatedAt", "Id" });
migrationBuilder.CreateIndex(
name: "IX_Notifications_UserId_IsRead_CreatedAt_Id",
table: "Notifications",
columns: new[] { "UserId", "IsRead", "CreatedAt", "Id" });
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropIndex(
name: "IX_Notifications_UserId_Category_CreatedAt_Id",
table: "Notifications");
migrationBuilder.DropIndex(
name: "IX_Notifications_UserId_CreatedAt_Id",
table: "Notifications");
migrationBuilder.DropIndex(
name: "IX_Notifications_UserId_IsRead_CreatedAt_Id",
table: "Notifications");
migrationBuilder.CreateIndex(
name: "IX_Notifications_UserId_Category_CreatedAt",
table: "Notifications",
columns: new[] { "UserId", "Category", "CreatedAt" });
migrationBuilder.CreateIndex(
name: "IX_Notifications_UserId_IsRead",
table: "Notifications",
columns: new[] { "UserId", "IsRead" });
}
}
}
@@ -3417,9 +3417,11 @@ namespace Jiaowu.Api.Infrastructure.Persistence.Migrations.MySql
b.HasIndex("MessageDispatchId");
b.HasIndex("UserId", "IsRead");
b.HasIndex("UserId", "CreatedAt", "Id");
b.HasIndex("UserId", "Category", "CreatedAt");
b.HasIndex("UserId", "Category", "CreatedAt", "Id");
b.HasIndex("UserId", "IsRead", "CreatedAt", "Id");
b.ToTable("Notifications");
});