Skip to content

Commit 094b3e5

Browse files
authored
statistics: change default value of tidb_analyze_version to 1 (#31826)
close #31748
1 parent c8a5e07 commit 094b3e5

File tree

9 files changed

+33
-34
lines changed

9 files changed

+33
-34
lines changed

cmd/explaintest/r/subquery.result

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ Projection 5.00 root Column#22
2222
├─TableReader(Build) 5.00 root data:TableFullScan
2323
│ └─TableFullScan 5.00 cop[tikv] table:t keep order:false
2424
└─StreamAgg(Probe) 1.00 root funcs:count(1)->Column#21
25-
└─IndexJoin 0.22 root inner join, inner:TableReader, outer key:test.t.a, inner key:test.t.a, equal cond:eq(test.t.a, test.t.a)
26-
├─IndexReader(Build) 0.45 root index:IndexRangeScan
27-
│ └─IndexRangeScan 0.45 cop[tikv] table:s, index:idx(b, c, d) range: decided by [eq(test.t.b, 1) eq(test.t.c, 1) eq(test.t.d, test.t.a)], keep order:false
25+
└─IndexJoin 0.50 root inner join, inner:TableReader, outer key:test.t.a, inner key:test.t.a, equal cond:eq(test.t.a, test.t.a)
26+
├─IndexReader(Build) 1.00 root index:IndexRangeScan
27+
│ └─IndexRangeScan 1.00 cop[tikv] table:s, index:idx(b, c, d) range: decided by [eq(test.t.b, 1) eq(test.t.c, 1) eq(test.t.d, test.t.a)], keep order:false
2828
└─TableReader(Probe) 1.00 root data:TableRangeScan
2929
└─TableRangeScan 1.00 cop[tikv] table:t1 range: decided by [test.t.a], keep order:false
3030
drop table if exists t;

executor/analyze_test.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -413,8 +413,8 @@ func (s *testFastAnalyze) TestFastAnalyze(c *C) {
413413
tk.MustExec("use test")
414414
tk.MustExec("drop table if exists t")
415415
tk.MustExec("create table t(a int primary key, b int, c char(10), index index_b(b))")
416-
tk.MustExec("set @@session.tidb_enable_fast_analyze=1")
417-
tk.MustExec("set @@session.tidb_build_stats_concurrency=1")
416+
tk.MustExec("set @@session.tidb_enable_fast_analyze = 1")
417+
tk.MustExec("set @@session.tidb_build_stats_concurrency = 1")
418418
tk.MustExec("set @@tidb_analyze_version = 1")
419419
// Should not panic.
420420
tk.MustExec("analyze table t")
@@ -564,18 +564,18 @@ func (s *testSerialSuite2) TestAnalyzeIndex(c *C) {
564564
tk.MustExec("drop table if exists t1")
565565
tk.MustExec("create table t1 (id int, v int, primary key(id), index k(v))")
566566
tk.MustExec("insert into t1(id, v) values(1, 2), (2, 2), (3, 2), (4, 2), (5, 1), (6, 3), (7, 4)")
567-
tk.MustExec("set @@tidb_analyze_version=1")
567+
tk.MustExec("set @@tidb_analyze_version = 1")
568568
tk.MustExec("analyze table t1 index k")
569569
c.Assert(len(tk.MustQuery("show stats_buckets where table_name = 't1' and column_name = 'k' and is_index = 1").Rows()), Greater, 0)
570570
tk.MustExec("set @@tidb_analyze_version=default")
571571
tk.MustExec("analyze table t1")
572-
c.Assert(len(tk.MustQuery("show stats_topn where table_name = 't1' and column_name = 'k' and is_index = 1").Rows()), Greater, 0)
572+
c.Assert(len(tk.MustQuery("show stats_topn where table_name = 't1' and column_name = 'k' and is_index = 1").Rows()), Equals, 0)
573573

574574
func() {
575575
defer tk.MustExec("set @@session.tidb_enable_fast_analyze=0")
576576
tk.MustExec("drop stats t1")
577-
tk.MustExec("set @@session.tidb_enable_fast_analyze=1")
578-
tk.MustExec("set @@tidb_analyze_version=1")
577+
tk.MustExec("set @@session.tidb_enable_fast_analyze = 1")
578+
tk.MustExec("set @@tidb_analyze_version = 1")
579579
tk.MustExec("analyze table t1 index k")
580580
c.Assert(len(tk.MustQuery("show stats_buckets where table_name = 't1' and column_name = 'k' and is_index = 1").Rows()), Greater, 1)
581581
}()
@@ -863,7 +863,7 @@ func (s *testSuite1) TestNormalAnalyzeOnCommonHandle(c *C) {
863863
tk.MustExec("insert into t3 values(1,1,1), (2,2,2), (3,3,3)")
864864

865865
// Version2 is tested in TestStatsVer2.
866-
tk.MustExec("set@@tidb_analyze_version=1")
866+
tk.MustExec("set@@tidb_analyze_version = 1")
867867
tk.MustExec("analyze table t1, t2, t3")
868868

869869
tk.MustQuery(`show stats_buckets where table_name in ("t1", "t2", "t3")`).Sort().Check(testkit.Rows(
@@ -913,6 +913,8 @@ func (s *testSuite1) TestDefaultValForAnalyze(c *C) {
913913
for i := 1; i < 4; i++ {
914914
tk.MustExec("insert into t values (?)", i)
915915
}
916+
tk.MustQuery("select @@tidb_analyze_version").Check(testkit.Rows("1"))
917+
tk.MustQuery("select @@session.tidb_analyze_version").Check(testkit.Rows("1"))
916918
tk.MustQuery("select @@tidb_enable_fast_analyze").Check(testkit.Rows("0"))
917919
tk.MustQuery("select @@session.tidb_enable_fast_analyze").Check(testkit.Rows("0"))
918920
tk.MustExec("analyze table t with 0 topn;")
@@ -956,7 +958,7 @@ func (s *testSerialSuite2) TestIssue20874(c *C) {
956958
tk.MustExec("delete from mysql.stats_histograms")
957959
tk.MustExec("create table t (a char(10) collate utf8mb4_unicode_ci not null, b char(20) collate utf8mb4_general_ci not null, key idxa(a), key idxb(b))")
958960
tk.MustExec("insert into t values ('#', 'C'), ('$', 'c'), ('a', 'a')")
959-
tk.MustExec("set @@tidb_analyze_version=1")
961+
tk.MustExec("set @@tidb_analyze_version = 1")
960962
tk.MustExec("analyze table t")
961963
tk.MustQuery("show stats_buckets where db_name = 'test' and table_name = 't'").Sort().Check(testkit.Rows(
962964
"test t a 0 0 1 1 \x02\xd2 \x02\xd2 0",

planner/core/testdata/analyze_suite_out.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -435,14 +435,14 @@
435435
{
436436
"Name": "TestAnalyze",
437437
"Cases": [
438-
"Analyze{Table(_tidb_rowid, a, b, _tidb_rowid)}",
438+
"Analyze{Index(a),Table(a, b)}",
439439
"TableReader(Table(t)->Sel([le(test.t.a, 2)]))",
440440
"IndexReader(Index(t.b)[[-inf,2)])",
441441
"TableReader(Table(t)->Sel([eq(test.t.a, 1) le(test.t.b, 2)]))",
442442
"TableReader(Table(t1)->Sel([le(test.t1.a, 2)]))",
443443
"IndexLookUp(Index(t1.a)[[1,1]], Table(t1)->Sel([le(test.t1.b, 2)]))",
444444
"TableReader(Table(t2)->Sel([le(test.t2.a, 2)]))",
445-
"Analyze{Table(_tidb_rowid, a, b, _tidb_rowid)}",
445+
"Analyze{Index(a),Index(b)}",
446446
"PartitionUnionAll{TableReader(Table(t4)->Sel([le(test.t4.a, 2)]))->TableReader(Table(t4)->Sel([le(test.t4.a, 2)]))}",
447447
"PartitionUnionAll{IndexReader(Index(t4.b)[[-inf,2)])->IndexReader(Index(t4.b)[[-inf,2)])}",
448448
"TableReader(Table(t4)->Sel([eq(test.t4.a, 1) le(test.t4.b, 2)]))"

planner/core/testdata/integration_suite_out.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -984,8 +984,8 @@
984984
{
985985
"SQL": "select * from t1 where t1.a = 1 and t1.b < \"333\"",
986986
"Plan": [
987-
"TableReader 0.82 root data:TableRangeScan",
988-
"└─TableRangeScan 0.82 cop[tikv] table:t1 range:[1 -inf,1 \"333\"), keep order:false"
987+
"TableReader 0.67 root data:TableRangeScan",
988+
"└─TableRangeScan 0.67 cop[tikv] table:t1 range:[1 -inf,1 \"333\"), keep order:false"
989989
],
990990
"Res": [
991991
"1 111 1.1000000000 11"

sessionctx/variable/tidb_vars.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -715,7 +715,7 @@ const (
715715
DefTiDBEnableAsyncCommit = false
716716
DefTiDBEnable1PC = false
717717
DefTiDBGuaranteeLinearizability = true
718-
DefTiDBAnalyzeVersion = 2
718+
DefTiDBAnalyzeVersion = 1
719719
DefTiDBEnableIndexMergeJoin = false
720720
DefTiDBTrackAggregateMemoryUsage = true
721721
DefTiDBEnableExchangePartition = false

statistics/handle/ddl_test.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,6 @@ func (s *testStatsSuite) TestDDLHistogram(c *C) {
179179
rs := testKit.MustQuery("select count(*) from mysql.stats_histograms where table_id = ? and hist_id = 1 and is_index =1", tableInfo.ID)
180180
rs.Check(testkit.Rows("1"))
181181
rs = testKit.MustQuery("select count(*) from mysql.stats_buckets where table_id = ? and hist_id = 1 and is_index = 1", tableInfo.ID)
182-
rs.Check(testkit.Rows("0"))
183-
rs = testKit.MustQuery("select count(*) from mysql.stats_top_n where table_id = ? and hist_id = 1 and is_index = 1", tableInfo.ID)
184182
rs.Check(testkit.Rows("2"))
185183
}
186184

statistics/handle/update_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -504,8 +504,7 @@ func (s *testStatsSuite) TestAutoUpdate(c *C) {
504504
hg, ok := stats.Indices[tableInfo.Indices[0].ID]
505505
c.Assert(ok, IsTrue)
506506
c.Assert(hg.NDV, Equals, int64(3))
507-
c.Assert(hg.Len(), Equals, 0)
508-
c.Assert(hg.TopN.Num(), Equals, 3)
507+
c.Assert(hg.Len(), Equals, 3)
509508
})
510509
}
511510

statistics/testdata/stats_suite_out.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -607,7 +607,7 @@
607607
},
608608
{
609609
"SQL": "select * from t where a < 8 and (b > 10 or c < 3 or b > 4) and a > 2",
610-
"Selectivity": 0
610+
"Selectivity": 0.3125
611611
}
612612
]
613613
}

util/ranger/testdata/ranger_suite_out.json

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -265,8 +265,8 @@
265265
{
266266
"SQL": "select * from t where a = 1 and ((b = 1) or (b = 2 and c = 3));",
267267
"Plan": [
268-
"TableReader_6 1.71 root data:TableRangeScan_5",
269-
"└─TableRangeScan_5 1.71 cop[tikv] table:t range:[1 1,1 1], [1 2 3,1 2 3], keep order:false"
268+
"TableReader_6 2.00 root data:TableRangeScan_5",
269+
"└─TableRangeScan_5 2.00 cop[tikv] table:t range:[1 1,1 1], [1 2 3,1 2 3], keep order:false"
270270
],
271271
"Result": [
272272
"1 1 1"
@@ -293,8 +293,8 @@
293293
{
294294
"SQL": "select * from t use index(primary) where ((a = 1) or (a = 2 and b = 2)) and c = 3;",
295295
"Plan": [
296-
"TableReader_7 0.68 root data:Selection_6",
297-
"└─Selection_6 0.68 cop[tikv] eq(test.t.c, 3), or(eq(test.t.a, 1), and(eq(test.t.a, 2), eq(test.t.b, 2)))",
296+
"TableReader_7 0.75 root data:Selection_6",
297+
"└─Selection_6 0.75 cop[tikv] eq(test.t.c, 3), or(eq(test.t.a, 1), and(eq(test.t.a, 2), eq(test.t.b, 2)))",
298298
" └─TableRangeScan_5 2.00 cop[tikv] table:t range:[1,1], [2,2], keep order:false"
299299
],
300300
"Result": [
@@ -304,7 +304,7 @@
304304
{
305305
"SQL": "select * from t where (a,b) in ((1,1),(2,2)) and c > 2 and (a,b,c) in ((1,1,1),(2,2,3));",
306306
"Plan": [
307-
"Selection_6 0.44 root gt(test.t.c, 2), or(and(eq(test.t.a, 1), eq(test.t.b, 1)), and(eq(test.t.a, 2), eq(test.t.b, 2)))",
307+
"Selection_6 0.56 root gt(test.t.c, 2), or(and(eq(test.t.a, 1), eq(test.t.b, 1)), and(eq(test.t.a, 2), eq(test.t.b, 2)))",
308308
"└─Batch_Point_Get_5 2.00 root table:t, clustered index:PRIMARY(a, b, c) keep order:false, desc:false"
309309
],
310310
"Result": [
@@ -314,8 +314,8 @@
314314
{
315315
"SQL": "select * from t where (a,b) in ((1,1),(2,2)) and c > 2;",
316316
"Plan": [
317-
"TableReader_6 1.19 root data:TableRangeScan_5",
318-
"└─TableRangeScan_5 1.19 cop[tikv] table:t range:(1 1 2,1 1 +inf], (2 2 2,2 2 +inf], keep order:false"
317+
"TableReader_6 1.00 root data:TableRangeScan_5",
318+
"└─TableRangeScan_5 1.00 cop[tikv] table:t range:(1 1 2,1 1 +inf], (2 2 2,2 2 +inf], keep order:false"
319319
],
320320
"Result": [
321321
"2 2 3"
@@ -324,8 +324,8 @@
324324
{
325325
"SQL": "select * from t where ((a = 1 and b = 1) or (a = 2 and b = 2)) and c > 2;",
326326
"Plan": [
327-
"TableReader_6 1.19 root data:TableRangeScan_5",
328-
"└─TableRangeScan_5 1.19 cop[tikv] table:t range:(1 1 2,1 1 +inf], (2 2 2,2 2 +inf], keep order:false"
327+
"TableReader_6 1.00 root data:TableRangeScan_5",
328+
"└─TableRangeScan_5 1.00 cop[tikv] table:t range:(1 1 2,1 1 +inf], (2 2 2,2 2 +inf], keep order:false"
329329
],
330330
"Result": [
331331
"2 2 3"
@@ -364,8 +364,8 @@
364364
{
365365
"SQL": "select * from t2 where t='aaaa';",
366366
"Plan": [
367-
"TableReader_7 1.00 root data:Selection_6",
368-
"└─Selection_6 1.00 cop[tikv] eq(test.t2.t, \"aaaa\")",
367+
"TableReader_7 0.00 root data:Selection_6",
368+
"└─Selection_6 0.00 cop[tikv] eq(test.t2.t, \"aaaa\")",
369369
" └─TableRangeScan_5 2.00 cop[tikv] table:t2 range:[0,+inf], keep order:false"
370370
],
371371
"Result": [
@@ -375,8 +375,8 @@
375375
{
376376
"SQL": "select * from t2 where t='aaaa' or t = 'a';",
377377
"Plan": [
378-
"TableReader_7 1.60 root data:Selection_6",
379-
"└─Selection_6 1.60 cop[tikv] or(eq(test.t2.t, \"aaaa\"), eq(test.t2.t, \"a\"))",
378+
"TableReader_7 0.80 root data:Selection_6",
379+
"└─Selection_6 0.80 cop[tikv] or(eq(test.t2.t, \"aaaa\"), eq(test.t2.t, \"a\"))",
380380
" └─TableRangeScan_5 2.00 cop[tikv] table:t2 range:[0,+inf], keep order:false"
381381
],
382382
"Result": [

0 commit comments

Comments
 (0)