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

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
@@ -102,6 +102,8 @@ public sealed class DevelopmentSqliteMigrator(
"20260809_53_course_grade_statistics_refresh_settings";
private const string ExperimentCourseGradesMigration =
"20260809_54_experiment_course_grades";
private const string NotificationInboxIndexesMigration =
"20260810_55_notification_inbox_indexes";
public async Task MigrateAsync(CancellationToken cancellationToken = default)
{
@@ -731,6 +733,10 @@ public sealed class DevelopmentSqliteMigrator(
ExperimentCourseGradesMigration,
experimentCourseGradesExist ? [] : ExperimentCourseGradesStatements,
cancellationToken);
await ApplyMigrationAsync(
NotificationInboxIndexesMigration,
NotificationInboxIndexesStatements,
cancellationToken);
}
private async Task ApplyMigrationAsync(
@@ -2999,6 +3005,15 @@ public sealed class DevelopmentSqliteMigrator(
"""CREATE UNIQUE INDEX IF NOT EXISTS "IX_CourseGradeStatisticsRefreshSettings_Key" ON "CourseGradeStatisticsRefreshSettings" ("Key");"""
];
private static readonly string[] NotificationInboxIndexesStatements =
[
"""DROP INDEX "IX_Notifications_UserId_IsRead";""",
"""DROP INDEX "IX_Notifications_UserId_Category_CreatedAt";""",
"""CREATE INDEX "IX_Notifications_UserId_CreatedAt_Id" ON "Notifications" ("UserId", "CreatedAt", "Id");""",
"""CREATE INDEX "IX_Notifications_UserId_IsRead_CreatedAt_Id" ON "Notifications" ("UserId", "IsRead", "CreatedAt", "Id");""",
"""CREATE INDEX "IX_Notifications_UserId_Category_CreatedAt_Id" ON "Notifications" ("UserId", "Category", "CreatedAt", "Id");"""
];
private static readonly string[] ExperimentCourseGradesStatements =
[
"""