From f654c65626d36adc3d9e0bcfd97861d43b5e6ec7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Mon, 30 Aug 2021 15:23:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8C=87=E6=A0=87=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=97=B6=E5=A2=9E=E5=8A=A0=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/metric_stat_dao.go | 3 +++ internal/db/models/metric_stat_dao_test.go | 8 ++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) 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") }