diff --git a/internal/db/models/metric_stat_dao.go b/internal/db/models/metric_stat_dao.go index d1a0b7d8..a4757fb9 100644 --- a/internal/db/models/metric_stat_dao.go +++ b/internal/db/models/metric_stat_dao.go @@ -197,6 +197,7 @@ func (this *MetricStatDAO) FindItemStatsWithClusterIdAndLastTime(tx *dbs.Tx, clu var lastTime = lastStat.Time var query = this.Query(tx). + UseIndex("cluster_item_time"). Attr("clusterId", clusterId). Attr("itemId", itemId). Attr("version", version). @@ -243,6 +244,7 @@ func (this *MetricStatDAO) FindItemStatsWithNodeIdAndLastTime(tx *dbs.Tx, nodeId var lastStat = statOne.(*MetricStat) var lastTime = lastStat.Time var query = this.Query(tx). + UseIndex("node_item_time"). Attr("nodeId", nodeId). Attr("itemId", itemId). Attr("version", version). @@ -290,6 +292,7 @@ func (this *MetricStatDAO) FindItemStatsWithServerIdAndLastTime(tx *dbs.Tx, serv var lastTime = lastStat.Time var query = this.Query(tx). + UseIndex("server_item_time"). Attr("serverId", serverId). Attr("itemId", itemId). Attr("version", version). diff --git a/internal/db/models/metric_stat_dao_test.go b/internal/db/models/metric_stat_dao_test.go index de249156..5cc59f25 100644 --- a/internal/db/models/metric_stat_dao_test.go +++ b/internal/db/models/metric_stat_dao_test.go @@ -3,16 +3,20 @@ package models import ( _ "github.com/go-sql-driver/mysql" _ "github.com/iwind/TeaGo/bootstrap" + "github.com/iwind/TeaGo/rands" "github.com/iwind/TeaGo/types" "testing" ) func TestNewMetricStatDAO_InsertMany(t *testing.T) { - for i := 0; i <= 1; i++ { - err := NewMetricStatDAO().CreateStat(nil, types.String(i) + "_v1", 18, 48, 23, 25, []string{"/html" + types.String(i)}, 1, "20210728", 0) + for i := 0; i <= 10_000_000; i++ { + err := NewMetricStatDAO().CreateStat(nil, types.String(i)+"_v1", 18, int64(rands.Int(0, 10000)), int64(rands.Int(0, 10000)), int64(rands.Int(0, 100)), []string{"/html" + types.String(i)}, 1, "20210830", 0) if err != nil { t.Fatal(err) } + if i % 10000 == 0 { + t.Log(i) + } } t.Log("done") }