mirror of
https://github.com/go-gitea/gitea
synced 2025-07-08 03:27:19 +00:00
Optimize heatmap query (#33853)
When there are over 5M records on `action` table, the heatmap on dashboard is very slow as below SQL. ``` database duration=1.8881s db.sql="SELECT created_unix DIV 900 * 900 AS timestamp, count(user_id) as contributions FROM `action` WHERE user_id=? AND act_user_id=? AND (created_unix > ?) GROUP BY timestamp ORDER BY timestamp" ``` This PR add a new index for `action` table with columns `user_id`, `act_user_id` and `created_unix` so that this query will become about 6 times faster than before.
This commit is contained in:
@ -377,6 +377,7 @@ func prepareMigrationTasks() []*migration {
|
||||
newMigration(314, "Update OwnerID as zero for repository level action tables", v1_24.UpdateOwnerIDOfRepoLevelActionsTables),
|
||||
newMigration(315, "Add Ephemeral to ActionRunner", v1_24.AddEphemeralToActionRunner),
|
||||
newMigration(316, "Add description for secrets and variables", v1_24.AddDescriptionForSecretsAndVariables),
|
||||
newMigration(317, "Add new index for action for heatmap", v1_24.AddNewIndexForUserDashboard),
|
||||
}
|
||||
return preparedMigrations
|
||||
}
|
||||
|
Reference in New Issue
Block a user