813 lines
34 KiB
JSON
813 lines
34 KiB
JSON
[
|
|
{
|
|
"Name": "TestExpBackoffEstimation",
|
|
"Cases": [
|
|
[
|
|
"IndexReader_6 5.00 root index:IndexRangeScan_5",
|
|
"└─IndexRangeScan_5 5.00 cop[tikv] table:exp_backoff, index:idx(a, b, c, d) range:[1,1], keep order:false"
|
|
],
|
|
[
|
|
"IndexReader_10 3.00 root index:Selection_9",
|
|
"└─Selection_9 3.00 cop[tikv] eq(test.exp_backoff.b, 1)",
|
|
" └─IndexFullScan_8 5.00 cop[tikv] table:exp_backoff, index:idx(a, b, c, d) keep order:false"
|
|
],
|
|
[
|
|
"IndexReader_10 2.00 root index:Selection_9",
|
|
"└─Selection_9 2.00 cop[tikv] eq(test.exp_backoff.c, 1)",
|
|
" └─IndexFullScan_8 5.00 cop[tikv] table:exp_backoff, index:idx(a, b, c, d) keep order:false"
|
|
],
|
|
[
|
|
"IndexReader_10 3.00 root index:Selection_9",
|
|
"└─Selection_9 3.00 cop[tikv] ge(test.exp_backoff.d, 3), le(test.exp_backoff.d, 5)",
|
|
" └─IndexFullScan_8 5.00 cop[tikv] table:exp_backoff, index:idx(a, b, c, d) keep order:false"
|
|
],
|
|
[
|
|
"IndexReader_6 1.36 root index:IndexRangeScan_5",
|
|
"└─IndexRangeScan_5 1.36 cop[tikv] table:exp_backoff, index:idx(a, b, c, d) range:[1 1 1 3,1 1 1 5], keep order:false"
|
|
],
|
|
[
|
|
"IndexReader_6 0.00 root index:IndexRangeScan_5",
|
|
"└─IndexRangeScan_5 0.00 cop[tikv] table:exp_backoff, index:idx(a, b, c, d) range:[1 1 1 3,1 1 1 5], keep order:false"
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"Name": "TestNULLOnFullSampling",
|
|
"Cases": [
|
|
[
|
|
"test t a 0 1 3",
|
|
"test t a 0 2 2",
|
|
"test t idx 1 1 3",
|
|
"test t idx 1 2 2"
|
|
],
|
|
[
|
|
"test t a 0 0 1 1 3 3 0",
|
|
"test t a 0 1 2 1 4 4 0",
|
|
"test t idx 1 0 1 1 3 3 0",
|
|
"test t idx 1 1 2 1 4 4 0"
|
|
]
|
|
]
|
|
},
|
|
{
|
|
"Name": "TestDefaultSelectivityForStrMatch",
|
|
"Cases": [
|
|
{
|
|
"SQL": "set @@tidb_default_string_match_selectivity = 0.8",
|
|
"Result": null
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where a + 10 > 100",
|
|
"Result": [
|
|
"TableReader 8000.00 root data:Selection",
|
|
"└─Selection 8000.00 cop[tikv] gt(plus(test.t.a, 10), 100)",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%test%'",
|
|
"Result": [
|
|
"TableReader 8000.00 root data:Selection",
|
|
"└─Selection 8000.00 cop[tikv] like(test.t.b, \"%test%\", 92)",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b not like '%test%'",
|
|
"Result": [
|
|
"TableReader 8000.00 root data:Selection",
|
|
"└─Selection 8000.00 cop[tikv] not(like(test.t.b, \"%test%\", 92))",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b regexp '.*test.*'",
|
|
"Result": [
|
|
"TableReader 8000.00 root data:Selection",
|
|
"└─Selection 8000.00 cop[tikv] regexp(test.t.b, \".*test.*\")",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b not regexp '.*test.*'",
|
|
"Result": [
|
|
"TableReader 8000.00 root data:Selection",
|
|
"└─Selection 8000.00 cop[tikv] not(istrue_with_null(regexp(test.t.b, \".*test.*\")))",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%test%' and a + 10 > 100",
|
|
"Result": [
|
|
"TableReader 8000.00 root data:Selection",
|
|
"└─Selection 8000.00 cop[tikv] gt(plus(test.t.a, 10), 100), like(test.t.b, \"%test%\", 92)",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b not like '%test%' and a + 10 > 100",
|
|
"Result": [
|
|
"TableReader 8000.00 root data:Selection",
|
|
"└─Selection 8000.00 cop[tikv] gt(plus(test.t.a, 10), 100), not(like(test.t.b, \"%test%\", 92))",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%test%' or a + 10 > 100",
|
|
"Result": [
|
|
"TableReader 9600.00 root data:Selection",
|
|
"└─Selection 9600.00 cop[tikv] or(like(test.t.b, \"%test%\", 92), gt(plus(test.t.a, 10), 100))",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "set @@tidb_default_string_match_selectivity = 0.9",
|
|
"Result": null
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where a + 10 > 100",
|
|
"Result": [
|
|
"TableReader 8000.00 root data:Selection",
|
|
"└─Selection 8000.00 cop[tikv] gt(plus(test.t.a, 10), 100)",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%test%'",
|
|
"Result": [
|
|
"TableReader 9000.00 root data:Selection",
|
|
"└─Selection 9000.00 cop[tikv] like(test.t.b, \"%test%\", 92)",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b not like '%test%'",
|
|
"Result": [
|
|
"TableReader 1000.00 root data:Selection",
|
|
"└─Selection 1000.00 cop[tikv] not(like(test.t.b, \"%test%\", 92))",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b regexp '.*test.*'",
|
|
"Result": [
|
|
"TableReader 9000.00 root data:Selection",
|
|
"└─Selection 9000.00 cop[tikv] regexp(test.t.b, \".*test.*\")",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b not regexp '.*test.*'",
|
|
"Result": [
|
|
"TableReader 1000.00 root data:Selection",
|
|
"└─Selection 1000.00 cop[tikv] not(istrue_with_null(regexp(test.t.b, \".*test.*\")))",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%test%' and a + 10 > 100",
|
|
"Result": [
|
|
"TableReader 8000.00 root data:Selection",
|
|
"└─Selection 8000.00 cop[tikv] gt(plus(test.t.a, 10), 100), like(test.t.b, \"%test%\", 92)",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b not like '%test%' and a + 10 > 100",
|
|
"Result": [
|
|
"TableReader 1000.00 root data:Selection",
|
|
"└─Selection 1000.00 cop[tikv] gt(plus(test.t.a, 10), 100), not(like(test.t.b, \"%test%\", 92))",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%test%' or a + 10 > 100",
|
|
"Result": [
|
|
"TableReader 9800.00 root data:Selection",
|
|
"└─Selection 9800.00 cop[tikv] or(like(test.t.b, \"%test%\", 92), gt(plus(test.t.a, 10), 100))",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "set @@tidb_default_string_match_selectivity = 0.1",
|
|
"Result": null
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where a + 10 > 100",
|
|
"Result": [
|
|
"TableReader 8000.00 root data:Selection",
|
|
"└─Selection 8000.00 cop[tikv] gt(plus(test.t.a, 10), 100)",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%test%'",
|
|
"Result": [
|
|
"TableReader 1000.00 root data:Selection",
|
|
"└─Selection 1000.00 cop[tikv] like(test.t.b, \"%test%\", 92)",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%test%' is true",
|
|
"Result": [
|
|
"TableReader 8000.00 root data:Selection",
|
|
"└─Selection 8000.00 cop[tikv] istrue(like(test.t.b, \"%test%\", 92))",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b not like '%test%'",
|
|
"Result": [
|
|
"TableReader 9000.00 root data:Selection",
|
|
"└─Selection 9000.00 cop[tikv] not(like(test.t.b, \"%test%\", 92))",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b regexp '.*test.*'",
|
|
"Result": [
|
|
"TableReader 1000.00 root data:Selection",
|
|
"└─Selection 1000.00 cop[tikv] regexp(test.t.b, \".*test.*\")",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b rlike '.*test.*'",
|
|
"Result": [
|
|
"TableReader 1000.00 root data:Selection",
|
|
"└─Selection 1000.00 cop[tikv] regexp(test.t.b, \".*test.*\")",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b not rlike '.*test.*'",
|
|
"Result": [
|
|
"TableReader 9000.00 root data:Selection",
|
|
"└─Selection 9000.00 cop[tikv] not(istrue_with_null(regexp(test.t.b, \".*test.*\")))",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b not regexp '.*test.*'",
|
|
"Result": [
|
|
"TableReader 9000.00 root data:Selection",
|
|
"└─Selection 9000.00 cop[tikv] not(istrue_with_null(regexp(test.t.b, \".*test.*\")))",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%test%' and a + 10 > 100",
|
|
"Result": [
|
|
"TableReader 1000.00 root data:Selection",
|
|
"└─Selection 1000.00 cop[tikv] gt(plus(test.t.a, 10), 100), like(test.t.b, \"%test%\", 92)",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b not like '%test%' and a + 10 > 100",
|
|
"Result": [
|
|
"TableReader 8000.00 root data:Selection",
|
|
"└─Selection 8000.00 cop[tikv] gt(plus(test.t.a, 10), 100), not(like(test.t.b, \"%test%\", 92))",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%test%' or a + 10 > 100",
|
|
"Result": [
|
|
"TableReader 8200.00 root data:Selection",
|
|
"└─Selection 8200.00 cop[tikv] or(like(test.t.b, \"%test%\", 92), gt(plus(test.t.a, 10), 100))",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "set @@tidb_default_string_match_selectivity = 0",
|
|
"Result": null
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where a + 10 > 100",
|
|
"Result": [
|
|
"TableReader 8000.00 root data:Selection",
|
|
"└─Selection 8000.00 cop[tikv] gt(plus(test.t.a, 10), 100)",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%test%'",
|
|
"Result": [
|
|
"TableReader 1000.00 root data:Selection",
|
|
"└─Selection 1000.00 cop[tikv] like(test.t.b, \"%test%\", 92)",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b not like '%test%'",
|
|
"Result": [
|
|
"TableReader 9000.00 root data:Selection",
|
|
"└─Selection 9000.00 cop[tikv] not(like(test.t.b, \"%test%\", 92))",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b regexp '.*test.*'",
|
|
"Result": [
|
|
"TableReader 1000.00 root data:Selection",
|
|
"└─Selection 1000.00 cop[tikv] regexp(test.t.b, \".*test.*\")",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b not regexp '.*test.*'",
|
|
"Result": [
|
|
"TableReader 9000.00 root data:Selection",
|
|
"└─Selection 9000.00 cop[tikv] not(istrue_with_null(regexp(test.t.b, \".*test.*\")))",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%test%' and a + 10 > 100",
|
|
"Result": [
|
|
"TableReader 1000.00 root data:Selection",
|
|
"└─Selection 1000.00 cop[tikv] gt(plus(test.t.a, 10), 100), like(test.t.b, \"%test%\", 92)",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b not like '%test%' and a + 10 > 100",
|
|
"Result": [
|
|
"TableReader 8000.00 root data:Selection",
|
|
"└─Selection 8000.00 cop[tikv] gt(plus(test.t.a, 10), 100), not(like(test.t.b, \"%test%\", 92))",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%test%' or a + 10 > 100",
|
|
"Result": [
|
|
"TableReader 8200.00 root data:Selection",
|
|
"└─Selection 8200.00 cop[tikv] or(like(test.t.b, \"%test%\", 92), gt(plus(test.t.a, 10), 100))",
|
|
" └─TableFullScan 10000.00 cop[tikv] table:t keep order:false, stats:pseudo"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"Name": "TestTopNAssistedEstimationWithNewCollation",
|
|
"Cases": [
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where a like '%111%'",
|
|
"Result": [
|
|
"TableReader 30.70 root data:Selection",
|
|
"└─Selection 30.70 cop[tikv] like(test.t.a, \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where a not like '%111%'",
|
|
"Result": [
|
|
"TableReader 6.30 root data:Selection",
|
|
"└─Selection 6.30 cop[tikv] not(like(test.t.a, \"%111%\", 92))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where a regexp '.*111.*'",
|
|
"Result": [
|
|
"TableReader 30.70 root data:Selection",
|
|
"└─Selection 30.70 cop[tikv] regexp(test.t.a, \".*111.*\")",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where a not regexp '.*111.*'",
|
|
"Result": [
|
|
"TableReader 6.30 root data:Selection",
|
|
"└─Selection 6.30 cop[tikv] not(istrue_with_null(regexp(test.t.a, \".*111.*\")))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where ifnull(a, '1111') like '%111%'",
|
|
"Result": [
|
|
"TableReader 33.70 root data:Selection",
|
|
"└─Selection 33.70 cop[tikv] like(ifnull(test.t.a, \"1111\"), \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where f like '%111%'",
|
|
"Result": [
|
|
"TableReader 30.70 root data:Selection",
|
|
"└─Selection 30.70 cop[tikv] like(test.t.f, \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where f not like '%111%'",
|
|
"Result": [
|
|
"TableReader 6.30 root data:Selection",
|
|
"└─Selection 6.30 cop[tikv] not(like(test.t.f, \"%111%\", 92))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where f regexp '.*111.*'",
|
|
"Result": [
|
|
"Selection 32.00 root regexp(test.t.f, \".*111.*\")",
|
|
"└─TableReader 40.00 root data:TableFullScan",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where f not regexp '.*111.*'",
|
|
"Result": [
|
|
"Selection 32.00 root not(regexp(test.t.f, \".*111.*\"))",
|
|
"└─TableReader 40.00 root data:TableFullScan",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where ifnull(f, '1111') like '%111%'",
|
|
"Result": [
|
|
"TableReader 33.70 root data:Selection",
|
|
"└─Selection 33.70 cop[tikv] like(ifnull(test.t.f, \"1111\"), \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where a like '%111%' and f rlike '.*111.*'",
|
|
"Result": [
|
|
"Selection 24.56 root regexp(test.t.f, \".*111.*\")",
|
|
"└─TableReader 30.70 root data:Selection",
|
|
" └─Selection 30.70 cop[tikv] like(test.t.a, \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where a like '%111%' or f like '%111%'",
|
|
"Result": [
|
|
"TableReader 37.84 root data:Selection",
|
|
"└─Selection 37.84 cop[tikv] or(like(test.t.a, \"%111%\", 92), like(test.t.f, \"%111%\", 92))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%111%'",
|
|
"Result": [
|
|
"TableReader 4.00 root data:Selection",
|
|
"└─Selection 4.00 cop[tikv] like(test.t.b, \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b not like '%111%'",
|
|
"Result": [
|
|
"TableReader 36.00 root data:Selection",
|
|
"└─Selection 36.00 cop[tikv] not(like(test.t.b, \"%111%\", 92))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b regexp '.*111.*'",
|
|
"Result": [
|
|
"TableReader 4.00 root data:Selection",
|
|
"└─Selection 4.00 cop[tikv] regexp(test.t.b, \".*111.*\")",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b not regexp '.*111.*'",
|
|
"Result": [
|
|
"TableReader 36.00 root data:Selection",
|
|
"└─Selection 36.00 cop[tikv] not(istrue_with_null(regexp(test.t.b, \".*111.*\")))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where ifnull(b, '1111') like '%111%'",
|
|
"Result": [
|
|
"TableReader 4.00 root data:Selection",
|
|
"└─Selection 4.00 cop[tikv] like(ifnull(test.t.b, \"1111\"), \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%111%' and f like '%111%'",
|
|
"Result": [
|
|
"TableReader 3.07 root data:Selection",
|
|
"└─Selection 3.07 cop[tikv] like(test.t.b, \"%111%\", 92), like(test.t.f, \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%111%' or f like '%111%'",
|
|
"Result": [
|
|
"TableReader 31.63 root data:Selection",
|
|
"└─Selection 31.63 cop[tikv] or(like(test.t.b, \"%111%\", 92), like(test.t.f, \"%111%\", 92))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where c like '%111%'",
|
|
"Result": [
|
|
"TableReader 4.00 root data:Selection",
|
|
"└─Selection 4.00 cop[tikv] like(test.t.c, \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where c not like '%111%'",
|
|
"Result": [
|
|
"TableReader 36.00 root data:Selection",
|
|
"└─Selection 36.00 cop[tikv] not(like(test.t.c, \"%111%\", 92))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where ifnull(c, '1111') like '%111%'",
|
|
"Result": [
|
|
"TableReader 4.00 root data:Selection",
|
|
"└─Selection 4.00 cop[tikv] like(ifnull(test.t.c, \"1111\"), \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where d like '%111%'",
|
|
"Result": [
|
|
"TableReader 4.00 root data:Selection",
|
|
"└─Selection 4.00 cop[tikv] like(test.t.d, \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where d not like '%111%'",
|
|
"Result": [
|
|
"TableReader 36.00 root data:Selection",
|
|
"└─Selection 36.00 cop[tikv] not(like(test.t.d, \"%111%\", 92))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where ifnull(c, '1111') like '%111%'",
|
|
"Result": [
|
|
"TableReader 4.00 root data:Selection",
|
|
"└─Selection 4.00 cop[tikv] like(ifnull(test.t.c, \"1111\"), \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where e like '%111%'",
|
|
"Result": [
|
|
"TableReader 4.00 root data:Selection",
|
|
"└─Selection 4.00 cop[tikv] like(test.t.e, \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where e not like '%111%'",
|
|
"Result": [
|
|
"TableReader 36.00 root data:Selection",
|
|
"└─Selection 36.00 cop[tikv] not(like(test.t.e, \"%111%\", 92))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where ifnull(e, '1111') like '%111%'",
|
|
"Result": [
|
|
"TableReader 4.00 root data:Selection",
|
|
"└─Selection 4.00 cop[tikv] like(ifnull(test.t.e, \"1111\"), \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"Name": "TestTopNAssistedEstimationWithoutNewCollation",
|
|
"Cases": [
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where a like '%111%'",
|
|
"Result": [
|
|
"TableReader 30.70 root data:Selection",
|
|
"└─Selection 30.70 cop[tikv] like(test.t.a, \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where a not like '%111%'",
|
|
"Result": [
|
|
"TableReader 6.30 root data:Selection",
|
|
"└─Selection 6.30 cop[tikv] not(like(test.t.a, \"%111%\", 92))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where a regexp '.*111.*'",
|
|
"Result": [
|
|
"TableReader 30.70 root data:Selection",
|
|
"└─Selection 30.70 cop[tikv] regexp(test.t.a, \".*111.*\")",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where a not regexp '.*111.*'",
|
|
"Result": [
|
|
"TableReader 6.30 root data:Selection",
|
|
"└─Selection 6.30 cop[tikv] not(istrue_with_null(regexp(test.t.a, \".*111.*\")))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where ifnull(a, '1111') like '%111%'",
|
|
"Result": [
|
|
"TableReader 33.70 root data:Selection",
|
|
"└─Selection 33.70 cop[tikv] like(ifnull(test.t.a, \"1111\"), \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where f like '%111%'",
|
|
"Result": [
|
|
"TableReader 30.70 root data:Selection",
|
|
"└─Selection 30.70 cop[tikv] like(test.t.f, \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where f not like '%111%'",
|
|
"Result": [
|
|
"TableReader 6.30 root data:Selection",
|
|
"└─Selection 6.30 cop[tikv] not(like(test.t.f, \"%111%\", 92))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where f regexp '.*111.*'",
|
|
"Result": [
|
|
"Selection 32.00 root regexp(test.t.f, \".*111.*\")",
|
|
"└─TableReader 40.00 root data:TableFullScan",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where f not regexp '.*111.*'",
|
|
"Result": [
|
|
"Selection 32.00 root not(regexp(test.t.f, \".*111.*\"))",
|
|
"└─TableReader 40.00 root data:TableFullScan",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where ifnull(f, '1111') like '%111%'",
|
|
"Result": [
|
|
"TableReader 33.70 root data:Selection",
|
|
"└─Selection 33.70 cop[tikv] like(ifnull(test.t.f, \"1111\"), \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where a like '%111%' and f rlike '.*111.*'",
|
|
"Result": [
|
|
"Selection 24.56 root regexp(test.t.f, \".*111.*\")",
|
|
"└─TableReader 30.70 root data:Selection",
|
|
" └─Selection 30.70 cop[tikv] like(test.t.a, \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where a like '%111%' or f like '%111%'",
|
|
"Result": [
|
|
"TableReader 37.84 root data:Selection",
|
|
"└─Selection 37.84 cop[tikv] or(like(test.t.a, \"%111%\", 92), like(test.t.f, \"%111%\", 92))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%111%'",
|
|
"Result": [
|
|
"TableReader 30.70 root data:Selection",
|
|
"└─Selection 30.70 cop[tikv] like(test.t.b, \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b not like '%111%'",
|
|
"Result": [
|
|
"TableReader 6.30 root data:Selection",
|
|
"└─Selection 6.30 cop[tikv] not(like(test.t.b, \"%111%\", 92))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b regexp '.*111.*'",
|
|
"Result": [
|
|
"TableReader 30.70 root data:Selection",
|
|
"└─Selection 30.70 cop[tikv] regexp(test.t.b, \".*111.*\")",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b not regexp '.*111.*'",
|
|
"Result": [
|
|
"TableReader 6.30 root data:Selection",
|
|
"└─Selection 6.30 cop[tikv] not(istrue_with_null(regexp(test.t.b, \".*111.*\")))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where ifnull(b, '1111') like '%111%'",
|
|
"Result": [
|
|
"TableReader 33.70 root data:Selection",
|
|
"└─Selection 33.70 cop[tikv] like(ifnull(test.t.b, \"1111\"), \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%111%' and f like '%111%'",
|
|
"Result": [
|
|
"TableReader 23.56 root data:Selection",
|
|
"└─Selection 23.56 cop[tikv] like(test.t.b, \"%111%\", 92), like(test.t.f, \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where b like '%111%' or f like '%111%'",
|
|
"Result": [
|
|
"TableReader 37.84 root data:Selection",
|
|
"└─Selection 37.84 cop[tikv] or(like(test.t.b, \"%111%\", 92), like(test.t.f, \"%111%\", 92))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where c like '%111%'",
|
|
"Result": [
|
|
"TableReader 30.70 root data:Selection",
|
|
"└─Selection 30.70 cop[tikv] like(test.t.c, \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where c not like '%111%'",
|
|
"Result": [
|
|
"TableReader 6.30 root data:Selection",
|
|
"└─Selection 6.30 cop[tikv] not(like(test.t.c, \"%111%\", 92))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where ifnull(c, '1111') like '%111%'",
|
|
"Result": [
|
|
"TableReader 33.70 root data:Selection",
|
|
"└─Selection 33.70 cop[tikv] like(ifnull(test.t.c, \"1111\"), \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where d like '%111%'",
|
|
"Result": [
|
|
"TableReader 30.70 root data:Selection",
|
|
"└─Selection 30.70 cop[tikv] like(test.t.d, \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where d not like '%111%'",
|
|
"Result": [
|
|
"TableReader 6.30 root data:Selection",
|
|
"└─Selection 6.30 cop[tikv] not(like(test.t.d, \"%111%\", 92))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where ifnull(c, '1111') like '%111%'",
|
|
"Result": [
|
|
"TableReader 33.70 root data:Selection",
|
|
"└─Selection 33.70 cop[tikv] like(ifnull(test.t.c, \"1111\"), \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where e like '%111%'",
|
|
"Result": [
|
|
"TableReader 30.70 root data:Selection",
|
|
"└─Selection 30.70 cop[tikv] like(test.t.e, \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where e not like '%111%'",
|
|
"Result": [
|
|
"TableReader 6.30 root data:Selection",
|
|
"└─Selection 6.30 cop[tikv] not(like(test.t.e, \"%111%\", 92))",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
},
|
|
{
|
|
"SQL": "explain format = 'brief' select * from t where ifnull(e, '1111') like '%111%'",
|
|
"Result": [
|
|
"TableReader 33.70 root data:Selection",
|
|
"└─Selection 33.70 cop[tikv] like(ifnull(test.t.e, \"1111\"), \"%111%\", 92)",
|
|
" └─TableFullScan 40.00 cop[tikv] table:t keep order:false"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|