Unified Storage: Add index on dashboard_tag table for dashboard_uid column (#102551)
add index on dashboard_tag table for dashboard_uid column
This commit is contained in:
@@ -261,6 +261,11 @@ func addDashboardMigration(mg *Migrator) {
|
|||||||
mg.AddMigration("Add apiVersion for dashboard", NewAddColumnMigration(dashboardV2, &Column{
|
mg.AddMigration("Add apiVersion for dashboard", NewAddColumnMigration(dashboardV2, &Column{
|
||||||
Name: "api_version", Type: DB_Varchar, Length: 16, Nullable: true,
|
Name: "api_version", Type: DB_Varchar, Length: 16, Nullable: true,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
mg.AddMigration("Add index for dashboard_uid on dashboard_tag table", NewAddIndexMigration(dashboardTagV1, &Index{
|
||||||
|
Cols: []string{"dashboard_uid"},
|
||||||
|
Type: IndexType,
|
||||||
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
type FillDashbordUIDAndOrgIDMigration struct {
|
type FillDashbordUIDAndOrgIDMigration struct {
|
||||||
@@ -278,23 +283,23 @@ func (m *FillDashbordUIDAndOrgIDMigration) Exec(sess *xorm.Session, mg *Migrator
|
|||||||
func RunDashboardTagMigrations(sess *xorm.Session, driverName string) error {
|
func RunDashboardTagMigrations(sess *xorm.Session, driverName string) error {
|
||||||
// sqlite
|
// sqlite
|
||||||
sql := `UPDATE dashboard_tag
|
sql := `UPDATE dashboard_tag
|
||||||
SET
|
SET
|
||||||
dashboard_uid = (SELECT uid FROM dashboard WHERE dashboard.id = dashboard_tag.dashboard_id),
|
dashboard_uid = (SELECT uid FROM dashboard WHERE dashboard.id = dashboard_tag.dashboard_id),
|
||||||
org_id = (SELECT org_id FROM dashboard WHERE dashboard.id = dashboard_tag.dashboard_id)
|
org_id = (SELECT org_id FROM dashboard WHERE dashboard.id = dashboard_tag.dashboard_id)
|
||||||
WHERE
|
WHERE
|
||||||
(dashboard_uid IS NULL OR org_id IS NULL)
|
(dashboard_uid IS NULL OR org_id IS NULL)
|
||||||
AND EXISTS (SELECT 1 FROM dashboard WHERE dashboard.id = dashboard_tag.dashboard_id);`
|
AND EXISTS (SELECT 1 FROM dashboard WHERE dashboard.id = dashboard_tag.dashboard_id);`
|
||||||
if driverName == Postgres {
|
if driverName == Postgres {
|
||||||
sql = `UPDATE dashboard_tag
|
sql = `UPDATE dashboard_tag
|
||||||
SET dashboard_uid = dashboard.uid,
|
SET dashboard_uid = dashboard.uid,
|
||||||
org_id = dashboard.org_id
|
org_id = dashboard.org_id
|
||||||
FROM dashboard
|
FROM dashboard
|
||||||
WHERE dashboard_tag.dashboard_id = dashboard.id
|
WHERE dashboard_tag.dashboard_id = dashboard.id
|
||||||
AND (dashboard_tag.dashboard_uid IS NULL OR dashboard_tag.org_id IS NULL);`
|
AND (dashboard_tag.dashboard_uid IS NULL OR dashboard_tag.org_id IS NULL);`
|
||||||
} else if driverName == MySQL {
|
} else if driverName == MySQL {
|
||||||
sql = `UPDATE dashboard_tag
|
sql = `UPDATE dashboard_tag
|
||||||
LEFT JOIN dashboard ON dashboard_tag.dashboard_id = dashboard.id
|
LEFT JOIN dashboard ON dashboard_tag.dashboard_id = dashboard.id
|
||||||
SET dashboard_tag.dashboard_uid = dashboard.uid,
|
SET dashboard_tag.dashboard_uid = dashboard.uid,
|
||||||
dashboard_tag.org_id = dashboard.org_id
|
dashboard_tag.org_id = dashboard.org_id
|
||||||
WHERE dashboard_tag.dashboard_uid IS NULL OR dashboard_tag.org_id IS NULL;`
|
WHERE dashboard_tag.dashboard_uid IS NULL OR dashboard_tag.org_id IS NULL;`
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user