github.com/whtcorpsinc/milevadb-prod@v0.0.0-20211104133533-f57f4be3b597/dbs/cmd/benchdb/explaintest/r/explain_complex_stats.result (about) 1 drop causet if exists dt; 2 CREATE TABLE dt ( 3 id int(11) unsigned NOT NULL, 4 aid varchar(32) NOT NULL comment '[[set=cn.sbkcq,us.sbkcq]]', 5 cm int(10) unsigned NOT NULL comment '[[range=1000,5000]]', 6 pt varchar(10) NOT NULL comment '[[set=android,ios]]', 7 dic varchar(64) DEFAULT NULL, 8 ip varchar(15) DEFAULT NULL, 9 ds date DEFAULT NULL comment '[[range=2020-01-01,2020-12-31]]', 10 ds2 varchar(13) DEFAULT NULL , 11 t int(13) DEFAULT NULL comment '[[range=1477971470,1480000000]]', 12 ext varchar(550) DEFAULT NULL, 13 p1 varchar(64) DEFAULT NULL , 14 p2 varchar(64) DEFAULT NULL, 15 p3 varchar(64) DEFAULT NULL, 16 p4 varchar(64) DEFAULT NULL, 17 p5 varchar(64) DEFAULT NULL, 18 p6_md5 varchar(32) DEFAULT NULL, 19 p7_md5 varchar(32) DEFAULT NULL, 20 bm tinyint(1) DEFAULT '0' comment '[[set=0,1]]', 21 bgm tinyint(1) DEFAULT '0' comment '[[set=0,1]]', 22 insert_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 23 PRIMARY KEY (id), 24 UNIQUE KEY aid (aid,dic), 25 KEY ip (ip), 26 KEY cm (cm) 27 ); 28 load stats 's/explain_complex_stats_dt.json'; 29 drop causet if exists st; 30 CREATE TABLE st ( 31 id int(11) UNSIGNED NOT NULL, 32 pt varchar(10) NOT NULL comment '[[set=android,ios]]', 33 aid varchar(35) NOT NULL comment '[[set=cn.sbkcq,us.sbkcq]]', 34 cm int(10) NOT NULL comment '[[range=1000,5000]]', 35 ip varchar(15) DEFAULT NULL , 36 dic varchar(64) DEFAULT NULL , 37 dit varchar(5) DEFAULT NULL comment '[[set=win,mac,linux]]', 38 p1 varchar(64) DEFAULT NULL , 39 p2 varchar(64) DEFAULT NULL, 40 p3 varchar(64) DEFAULT NULL, 41 p4 varchar(64) DEFAULT NULL, 42 p5 varchar(64) DEFAULT NULL, 43 p6_md5 varchar(32) DEFAULT NULL, 44 p7_md5 varchar(32) DEFAULT NULL, 45 ext varchar(550) DEFAULT NULL, 46 bm tinyint(1) DEFAULT '0' comment '[[set=0,1]]', 47 ds date NOT NULL , 48 ds2 varchar(13) DEFAULT NULL , 49 t int(13) NOT NULL comment '[[range=1477971470,1479144000]]', 50 PRIMARY KEY (id), 51 KEY t (t), 52 KEY icd (cm,ds) 53 ); 54 load stats 's/explain_complex_stats_st.json'; 55 drop causet if exists dd; 56 CREATE TABLE dd ( 57 id int(11) UNSIGNED NOT NULL, 58 aid varchar(35) NOT NULL comment '[[set=cn.sbkcq,us.sbkcq]]', 59 pt varchar(10) NOT NULL comment '[[set=android,ios]]', 60 dic varchar(64) NOT NULL, 61 dim varchar(32) NOT NULL , 62 mac varchar(32) DEFAULT NULL , 63 ip varchar(15) DEFAULT NULL , 64 t int(13) DEFAULT NULL comment '[[range=1478143900,1478144000]]', 65 bm tinyint(1) DEFAULT '0' comment '[[set=0,1]]', 66 PRIMARY KEY (id), 67 UNIQUE KEY aid (aid,dic), 68 KEY ip (ip), 69 KEY pi (aid,dim), 70 KEY t (t) 71 ); 72 load stats 's/explain_complex_stats_dd.json'; 73 drop causet if exists pp; 74 CREATE TABLE pp ( 75 oid varchar(20) NOT NULL, 76 uid bigint(20) unsigned NOT NULL comment '[[set=18089709,18089710,18090780,18090781]]', 77 cid int(11) unsigned NOT NULL, 78 ppt int(11) NOT NULL DEFAULT '0' comment '[[range=1478188700,1478275300]]', 79 FIDelt int(11) DEFAULT '0', 80 am decimal(10,2) unsigned NOT NULL DEFAULT '0.00', 81 cc decimal(10,2) NOT NULL DEFAULT '0.00', 82 ps tinyint(1) NOT NULL comment '[[set=0,1,2]]', 83 tid varchar(200) DEFAULT NULL, 84 ppf varchar(50) NOT NULL comment '[[set=android,ios]]', 85 bs tinyint(1) NOT NULL DEFAULT '0' comment '[[set=0,1]]', 86 bex tinyint(1) NOT NULL DEFAULT '0' comment '[[set=0,1]]', 87 bu int(11) NOT NULL DEFAULT '0' comment '[[set=0,1]]', 88 pc char(10) NOT NULL DEFAULT 'CNY', 89 ui int(16) NOT NULL DEFAULT '1', 90 cr decimal(10,4) unsigned NOT NULL DEFAULT '1.0000', 91 pi int(11) unsigned NOT NULL comment '[[set=510017,520017,530017]]', 92 si int(11) unsigned NOT NULL, 93 bcc int(11) NOT NULL DEFAULT '0', 94 acc int(11) NOT NULL DEFAULT '0', 95 KEY oid (oid), 96 KEY uid (uid), 97 KEY ppt (ppt), 98 KEY FIDelt (FIDelt), 99 KEY cid (cid), 100 KEY ps (ps), 101 KEY sp (uid,pi) 102 ); 103 load stats 's/explain_complex_stats_pp.json'; 104 drop causet if exists rr; 105 CREATE TABLE rr ( 106 aid varchar(35) NOT NULL comment '[[set=cn.sbkcq,us.sbkcq]]', 107 pt varchar(10) NOT NULL comment '[[set=android,ios]]', 108 dic varchar(64) NOT NULL , 109 gid varchar(42) NOT NULL , 110 acd varchar(32) NOT NULL , 111 t int(13) DEFAULT NULL comment '[[range=1478180000,1480275300]]', 112 bm tinyint(1) DEFAULT '0' comment '[[set=0,1]]', 113 PRIMARY KEY (aid,dic) 114 ); 115 load stats 's/explain_complex_stats_rr.json'; 116 explain SELECT ds, p1, p2, p3, p4, p5, p6_md5, p7_md5, count(dic) as install_device FROM dt use index (cm) WHERE (ds >= '2020-09-01') AND (ds <= '2020-11-03') AND (cm IN ('1062', '1086', '1423', '1424', '1425', '1426', '1427', '1428', '1429', '1430', '1431', '1432', '1433', '1434', '1435', '1436', '1437', '1438', '1439', '1440', '1441', '1442', '1443', '1444', '1445', '1446', '1447', '1448', '1449', '1450', '1451', '1452', '1488', '1489', '1490', '1491', '1492', '1493', '1494', '1495', '1496', '1497', '1550', '1551', '1552', '1553', '1554', '1555', '1556', '1557', '1558', '1559', '1597', '1598', '1599', '1600', '1601', '1602', '1603', '1604', '1605', '1606', '1607', '1608', '1609', '1610', '1611', '1612', '1613', '1614', '1615', '1616', '1623', '1624', '1625', '1626', '1627', '1628', '1629', '1630', '1631', '1632', '1709', '1719', '1720', '1843', '2813', '2814', '2815', '2816', '2817', '2818', '2819', '2820', '2821', '2822', '2823', '2824', '2825', '2826', '2827', '2828', '2829', '2830', '2831', '2832', '2833', '2834', '2835', '2836', '2837', '2838', '2839', '2840', '2841', '2842', '2843', '2844', '2845', '2846', '2847', '2848', '2849', '2850', '2851', '2852', '2853', '2854', '2855', '2856', '2857', '2858', '2859', '2860', '2861', '2862', '2863', '2864', '2865', '2866', '2867', '2868', '2869', '2870', '2871', '2872', '3139', '3140', '3141', '3142', '3143', '3144', '3145', '3146', '3147', '3148', '3149', '3150', '3151', '3152', '3153', '3154', '3155', '3156', '3157', '3158', '3386', '3387', '3388', '3389', '3390', '3391', '3392', '3393', '3394', '3395', '3664', '3665', '3666', '3667', '3668', '3670', '3671', '3672', '3673', '3674', '3676', '3677', '3678', '3679', '3680', '3681', '3682', '3683', '3684', '3685', '3686', '3687', '3688', '3689', '3690', '3691', '3692', '3693', '3694', '3695', '3696', '3697', '3698', '3699', '3700', '3701', '3702', '3703', '3704', '3705', '3706', '3707', '3708', '3709', '3710', '3711', '3712', '3713', '3714', '3715', '3960', '3961', '3962', '3963', '3964', '3965', '3966', '3967', '3968', '3978', '3979', '3980', '3981', '3982', '3983', '3984', '3985', '3986', '3987', '4208', '4209', '4210', '4211', '4212', '4304', '4305', '4306', '4307', '4308', '4866', '4867', '4868', '4869', '4870', '4871', '4872', '4873', '4874', '4875')) GROUP BY ds, p1, p2, p3, p4, p5, p6_md5, p7_md5 ORDER BY ds2 DESC; 117 id estRows task access object operator info 118 Projection_7 21.53 root test.dt.ds, test.dt.p1, test.dt.p2, test.dt.p3, test.dt.p4, test.dt.p5, test.dt.p6_md5, test.dt.p7_md5, DeferredCauset#21 119 └─Sort_8 21.53 root test.dt.ds2:desc 120 └─HashAgg_16 21.53 root group by:test.dt.ds, test.dt.p1, test.dt.p2, test.dt.p3, test.dt.p4, test.dt.p5, test.dt.p6_md5, test.dt.p7_md5, funcs:count(DeferredCauset#32)->DeferredCauset#21, funcs:firstrow(test.dt.ds)->test.dt.ds, funcs:firstrow(DeferredCauset#34)->test.dt.ds2, funcs:firstrow(test.dt.p1)->test.dt.p1, funcs:firstrow(test.dt.p2)->test.dt.p2, funcs:firstrow(test.dt.p3)->test.dt.p3, funcs:firstrow(test.dt.p4)->test.dt.p4, funcs:firstrow(test.dt.p5)->test.dt.p5, funcs:firstrow(test.dt.p6_md5)->test.dt.p6_md5, funcs:firstrow(test.dt.p7_md5)->test.dt.p7_md5 121 └─IndexLookUp_17 21.53 root 122 ├─IndexRangeScan_13(Build) 128.32 cop[einsteindb] causet:dt, index:cm(cm) range:[1062,1062], [1086,1086], [1423,1423], [1424,1424], [1425,1425], [1426,1426], [1427,1427], [1428,1428], [1429,1429], [1430,1430], [1431,1431], [1432,1432], [1433,1433], [1434,1434], [1435,1435], [1436,1436], [1437,1437], [1438,1438], [1439,1439], [1440,1440], [1441,1441], [1442,1442], [1443,1443], [1444,1444], [1445,1445], [1446,1446], [1447,1447], [1448,1448], [1449,1449], [1450,1450], [1451,1451], [1452,1452], [1488,1488], [1489,1489], [1490,1490], [1491,1491], [1492,1492], [1493,1493], [1494,1494], [1495,1495], [1496,1496], [1497,1497], [1550,1550], [1551,1551], [1552,1552], [1553,1553], [1554,1554], [1555,1555], [1556,1556], [1557,1557], [1558,1558], [1559,1559], [1597,1597], [1598,1598], [1599,1599], [1600,1600], [1601,1601], [1602,1602], [1603,1603], [1604,1604], [1605,1605], [1606,1606], [1607,1607], [1608,1608], [1609,1609], [1610,1610], [1611,1611], [1612,1612], [1613,1613], [1614,1614], [1615,1615], [1616,1616], [1623,1623], [1624,1624], [1625,1625], [1626,1626], [1627,1627], [1628,1628], [1629,1629], [1630,1630], [1631,1631], [1632,1632], [1709,1709], [1719,1719], [1720,1720], [1843,1843], [2813,2813], [2814,2814], [2815,2815], [2816,2816], [2817,2817], [2818,2818], [2819,2819], [2820,2820], [2821,2821], [2822,2822], [2823,2823], [2824,2824], [2825,2825], [2826,2826], [2827,2827], [2828,2828], [2829,2829], [2830,2830], [2831,2831], [2832,2832], [2833,2833], [2834,2834], [2835,2835], [2836,2836], [2837,2837], [2838,2838], [2839,2839], [2840,2840], [2841,2841], [2842,2842], [2843,2843], [2844,2844], [2845,2845], [2846,2846], [2847,2847], [2848,2848], [2849,2849], [2850,2850], [2851,2851], [2852,2852], [2853,2853], [2854,2854], [2855,2855], [2856,2856], [2857,2857], [2858,2858], [2859,2859], [2860,2860], [2861,2861], [2862,2862], [2863,2863], [2864,2864], [2865,2865], [2866,2866], [2867,2867], [2868,2868], [2869,2869], [2870,2870], [2871,2871], [2872,2872], [3139,3139], [3140,3140], [3141,3141], [3142,3142], [3143,3143], [3144,3144], [3145,3145], [3146,3146], [3147,3147], [3148,3148], [3149,3149], [3150,3150], [3151,3151], [3152,3152], [3153,3153], [3154,3154], [3155,3155], [3156,3156], [3157,3157], [3158,3158], [3386,3386], [3387,3387], [3388,3388], [3389,3389], [3390,3390], [3391,3391], [3392,3392], [3393,3393], [3394,3394], [3395,3395], [3664,3664], [3665,3665], [3666,3666], [3667,3667], [3668,3668], [3670,3670], [3671,3671], [3672,3672], [3673,3673], [3674,3674], [3676,3676], [3677,3677], [3678,3678], [3679,3679], [3680,3680], [3681,3681], [3682,3682], [3683,3683], [3684,3684], [3685,3685], [3686,3686], [3687,3687], [3688,3688], [3689,3689], [3690,3690], [3691,3691], [3692,3692], [3693,3693], [3694,3694], [3695,3695], [3696,3696], [3697,3697], [3698,3698], [3699,3699], [3700,3700], [3701,3701], [3702,3702], [3703,3703], [3704,3704], [3705,3705], [3706,3706], [3707,3707], [3708,3708], [3709,3709], [3710,3710], [3711,3711], [3712,3712], [3713,3713], [3714,3714], [3715,3715], [3960,3960], [3961,3961], [3962,3962], [3963,3963], [3964,3964], [3965,3965], [3966,3966], [3967,3967], [3968,3968], [3978,3978], [3979,3979], [3980,3980], [3981,3981], [3982,3982], [3983,3983], [3984,3984], [3985,3985], [3986,3986], [3987,3987], [4208,4208], [4209,4209], [4210,4210], [4211,4211], [4212,4212], [4304,4304], [4305,4305], [4306,4306], [4307,4307], [4308,4308], [4866,4866], [4867,4867], [4868,4868], [4869,4869], [4870,4870], [4871,4871], [4872,4872], [4873,4873], [4874,4874], [4875,4875], keep order:false 123 └─HashAgg_11(Probe) 21.53 cop[einsteindb] group by:test.dt.ds, test.dt.p1, test.dt.p2, test.dt.p3, test.dt.p4, test.dt.p5, test.dt.p6_md5, test.dt.p7_md5, funcs:count(test.dt.dic)->DeferredCauset#32, funcs:firstrow(test.dt.ds2)->DeferredCauset#34 124 └─Selection_15 21.56 cop[einsteindb] ge(test.dt.ds, 2020-09-01 00:00:00.000000), le(test.dt.ds, 2020-11-03 00:00:00.000000) 125 └─TableRowIDScan_14 128.32 cop[einsteindb] causet:dt keep order:false 126 explain select gad.id as gid,sdk.id as sid,gad.aid as aid,gad.cm as cm,sdk.dic as dic,sdk.ip as ip, sdk.t as t, gad.p1 as p1, gad.p2 as p2, gad.p3 as p3, gad.p4 as p4, gad.p5 as p5, gad.p6_md5 as p6, gad.p7_md5 as p7, gad.ext as ext, gad.t as gtime from st gad join (select id, aid, pt, dic, ip, t from dd where pt = 'android' and bm = 0 and t > 1478143908) sdk on gad.aid = sdk.aid and gad.ip = sdk.ip and sdk.t > gad.t where gad.t > 1478143908 and gad.bm = 0 and gad.pt = 'android' group by gad.aid, sdk.dic limit 2500; 127 id estRows task access object operator info 128 Projection_13 424.00 root test.st.id, test.dd.id, test.st.aid, test.st.cm, test.dd.dic, test.dd.ip, test.dd.t, test.st.p1, test.st.p2, test.st.p3, test.st.p4, test.st.p5, test.st.p6_md5, test.st.p7_md5, test.st.ext, test.st.t 129 └─Limit_16 424.00 root offset:0, count:2500 130 └─HashAgg_19 424.00 root group by:test.dd.dic, test.st.aid, funcs:firstrow(test.st.id)->test.st.id, funcs:firstrow(test.st.aid)->test.st.aid, funcs:firstrow(test.st.cm)->test.st.cm, funcs:firstrow(test.st.p1)->test.st.p1, funcs:firstrow(test.st.p2)->test.st.p2, funcs:firstrow(test.st.p3)->test.st.p3, funcs:firstrow(test.st.p4)->test.st.p4, funcs:firstrow(test.st.p5)->test.st.p5, funcs:firstrow(test.st.p6_md5)->test.st.p6_md5, funcs:firstrow(test.st.p7_md5)->test.st.p7_md5, funcs:firstrow(test.st.ext)->test.st.ext, funcs:firstrow(test.st.t)->test.st.t, funcs:firstrow(test.dd.id)->test.dd.id, funcs:firstrow(test.dd.dic)->test.dd.dic, funcs:firstrow(test.dd.ip)->test.dd.ip, funcs:firstrow(test.dd.t)->test.dd.t 131 └─HashJoin_34 424.00 root inner join, equal:[eq(test.st.aid, test.dd.aid) eq(test.st.ip, test.dd.ip)], other cond:gt(test.dd.t, test.st.t) 132 ├─TableReader_37(Build) 424.00 root data:Selection_36 133 │ └─Selection_36 424.00 cop[einsteindb] eq(test.st.bm, 0), eq(test.st.pt, "android"), gt(test.st.t, 1478143908), not(isnull(test.st.ip)) 134 │ └─TableRangeScan_35 1999.00 cop[einsteindb] causet:gad range:[0,+inf], keep order:false 135 └─TableReader_44(Probe) 455.80 root data:Selection_43 136 └─Selection_43 455.80 cop[einsteindb] eq(test.dd.bm, 0), eq(test.dd.pt, "android"), gt(test.dd.t, 1478143908), not(isnull(test.dd.ip)), not(isnull(test.dd.t)) 137 └─TableRangeScan_42 2000.00 cop[einsteindb] causet:dd range:[0,+inf], keep order:false 138 explain select gad.id as gid,sdk.id as sid,gad.aid as aid,gad.cm as cm,sdk.dic as dic,sdk.ip as ip, sdk.t as t, gad.p1 as p1, gad.p2 as p2, gad.p3 as p3, gad.p4 as p4, gad.p5 as p5, gad.p6_md5 as p6, gad.p7_md5 as p7, gad.ext as ext from st gad join dd sdk on gad.aid = sdk.aid and gad.dic = sdk.mac and gad.t < sdk.t where gad.t > 1477971479 and gad.bm = 0 and gad.pt = 'ios' and gad.dit = 'mac' and sdk.t > 1477971479 and sdk.bm = 0 and sdk.pt = 'ios' limit 3000; 139 id estRows task access object operator info 140 Projection_10 170.34 root test.st.id, test.dd.id, test.st.aid, test.st.cm, test.dd.dic, test.dd.ip, test.dd.t, test.st.p1, test.st.p2, test.st.p3, test.st.p4, test.st.p5, test.st.p6_md5, test.st.p7_md5, test.st.ext 141 └─Limit_13 170.34 root offset:0, count:3000 142 └─IndexMergeJoin_26 170.34 root inner join, inner:IndexLookUp_24, outer key:test.st.aid, inner key:test.dd.aid, other cond:eq(test.st.dic, test.dd.mac), lt(test.st.t, test.dd.t) 143 ├─TableReader_31(Build) 170.34 root data:Selection_30 144 │ └─Selection_30 170.34 cop[einsteindb] eq(test.st.bm, 0), eq(test.st.dit, "mac"), eq(test.st.pt, "ios"), gt(test.st.t, 1477971479), not(isnull(test.st.dic)) 145 │ └─TableRangeScan_29 1999.00 cop[einsteindb] causet:gad range:[0,+inf], keep order:false 146 └─IndexLookUp_24(Probe) 1.00 root 147 ├─IndexRangeScan_21(Build) 3.93 cop[einsteindb] causet:sdk, index:aid(aid, dic) range: decided by [eq(test.dd.aid, test.st.aid)], keep order:true 148 └─Selection_23(Probe) 1.00 cop[einsteindb] eq(test.dd.bm, 0), eq(test.dd.pt, "ios"), gt(test.dd.t, 1477971479), not(isnull(test.dd.mac)), not(isnull(test.dd.t)) 149 └─TableRowIDScan_22 3.93 cop[einsteindb] causet:sdk keep order:false 150 explain SELECT cm, p1, p2, p3, p4, p5, p6_md5, p7_md5, count(1) as click_pv, count(DISTINCT ip) as click_ip FROM st WHERE (t between 1478188800 and 1478275200) and aid='cn.sbkcq' and pt='android' GROUP BY cm, p1, p2, p3, p4, p5, p6_md5, p7_md5; 151 id estRows task access object operator info 152 Projection_5 39.28 root test.st.cm, test.st.p1, test.st.p2, test.st.p3, test.st.p4, test.st.p5, test.st.p6_md5, test.st.p7_md5, DeferredCauset#20, DeferredCauset#21 153 └─HashAgg_6 39.28 root group by:test.st.cm, test.st.p1, test.st.p2, test.st.p3, test.st.p4, test.st.p5, test.st.p6_md5, test.st.p7_md5, funcs:count(1)->DeferredCauset#20, funcs:count(distinct test.st.ip)->DeferredCauset#21, funcs:firstrow(test.st.cm)->test.st.cm, funcs:firstrow(test.st.p1)->test.st.p1, funcs:firstrow(test.st.p2)->test.st.p2, funcs:firstrow(test.st.p3)->test.st.p3, funcs:firstrow(test.st.p4)->test.st.p4, funcs:firstrow(test.st.p5)->test.st.p5, funcs:firstrow(test.st.p6_md5)->test.st.p6_md5, funcs:firstrow(test.st.p7_md5)->test.st.p7_md5 154 └─IndexLookUp_13 39.38 root 155 ├─IndexRangeScan_10(Build) 160.23 cop[einsteindb] causet:st, index:t(t) range:[1478188800,1478275200], keep order:false 156 └─Selection_12(Probe) 39.38 cop[einsteindb] eq(test.st.aid, "cn.sbkcq"), eq(test.st.pt, "android") 157 └─TableRowIDScan_11 160.23 cop[einsteindb] causet:st keep order:false 158 explain select dt.id as id, dt.aid as aid, dt.pt as pt, dt.dic as dic, dt.cm as cm, rr.gid as gid, rr.acd as acd, rr.t as t,dt.p1 as p1, dt.p2 as p2, dt.p3 as p3, dt.p4 as p4, dt.p5 as p5, dt.p6_md5 as p6, dt.p7_md5 as p7 from dt dt join rr rr on (rr.pt = 'ios' and rr.t > 1478185592 and dt.aid = rr.aid and dt.dic = rr.dic) where dt.pt = 'ios' and dt.t > 1478185592 and dt.bm = 0 limit 2000; 159 id estRows task access object operator info 160 Projection_10 428.32 root test.dt.id, test.dt.aid, test.dt.pt, test.dt.dic, test.dt.cm, test.rr.gid, test.rr.acd, test.rr.t, test.dt.p1, test.dt.p2, test.dt.p3, test.dt.p4, test.dt.p5, test.dt.p6_md5, test.dt.p7_md5 161 └─Limit_13 428.32 root offset:0, count:2000 162 └─IndexMergeJoin_28 428.32 root inner join, inner:Projection_26, outer key:test.dt.aid, test.dt.dic, inner key:test.rr.aid, test.rr.dic 163 ├─TableReader_58(Build) 428.32 root data:Selection_57 164 │ └─Selection_57 428.32 cop[einsteindb] eq(test.dt.bm, 0), eq(test.dt.pt, "ios"), gt(test.dt.t, 1478185592), not(isnull(test.dt.dic)) 165 │ └─TableRangeScan_56 2000.00 cop[einsteindb] causet:dt range:[0,+inf], keep order:false 166 └─Projection_26(Probe) 1.00 root test.rr.aid, test.rr.pt, test.rr.dic, test.rr.gid, test.rr.acd, test.rr.t 167 └─IndexLookUp_25 1.00 root 168 ├─IndexRangeScan_22(Build) 1.00 cop[einsteindb] causet:rr, index:PRIMARY(aid, dic) range: decided by [eq(test.rr.aid, test.dt.aid) eq(test.rr.dic, test.dt.dic)], keep order:true 169 └─Selection_24(Probe) 1.00 cop[einsteindb] eq(test.rr.pt, "ios"), gt(test.rr.t, 1478185592) 170 └─TableRowIDScan_23 1.00 cop[einsteindb] causet:rr keep order:false 171 explain select pc,cr,count(DISTINCT uid) as pay_users,count(oid) as pay_times,sum(am) as am from pp where ps=2 and ppt>=1478188800 and ppt<1478275200 and pi in ('510017','520017') and uid in ('18089709','18090780') group by pc,cr; 172 id estRows task access object operator info 173 Projection_5 207.86 root test.pp.pc, test.pp.cr, DeferredCauset#22, DeferredCauset#23, DeferredCauset#24 174 └─HashAgg_6 207.86 root group by:test.pp.cr, test.pp.pc, funcs:count(distinct test.pp.uid)->DeferredCauset#22, funcs:count(test.pp.oid)->DeferredCauset#23, funcs:sum(test.pp.am)->DeferredCauset#24, funcs:firstrow(test.pp.pc)->test.pp.pc, funcs:firstrow(test.pp.cr)->test.pp.cr 175 └─IndexLookUp_17 207.86 root 176 ├─IndexRangeScan_14(Build) 627.00 cop[einsteindb] causet:pp, index:ps(ps) range:[2,2], keep order:false 177 └─Selection_16(Probe) 207.86 cop[einsteindb] ge(test.pp.ppt, 1478188800), in(test.pp.pi, 510017, 520017), in(test.pp.uid, 18089709, 18090780), lt(test.pp.ppt, 1478275200) 178 └─TableRowIDScan_15 627.00 cop[einsteindb] causet:pp keep order:false 179 drop causet if exists tbl_001; 180 CREATE TABLE tbl_001 (a int, b int); 181 load stats 's/explain_complex_stats_tbl_001.json'; 182 drop causet if exists tbl_002; 183 CREATE TABLE tbl_002 (a int, b int); 184 load stats 's/explain_complex_stats_tbl_002.json'; 185 drop causet if exists tbl_003; 186 CREATE TABLE tbl_003 (a int, b int); 187 load stats 's/explain_complex_stats_tbl_003.json'; 188 drop causet if exists tbl_004; 189 CREATE TABLE tbl_004 (a int, b int); 190 load stats 's/explain_complex_stats_tbl_004.json'; 191 drop causet if exists tbl_005; 192 CREATE TABLE tbl_005 (a int, b int); 193 load stats 's/explain_complex_stats_tbl_005.json'; 194 drop causet if exists tbl_006; 195 CREATE TABLE tbl_006 (a int, b int); 196 load stats 's/explain_complex_stats_tbl_006.json'; 197 drop causet if exists tbl_007; 198 CREATE TABLE tbl_007 (a int, b int); 199 load stats 's/explain_complex_stats_tbl_007.json'; 200 drop causet if exists tbl_008; 201 CREATE TABLE tbl_008 (a int, b int); 202 load stats 's/explain_complex_stats_tbl_008.json'; 203 drop causet if exists tbl_009; 204 CREATE TABLE tbl_009 (a int, b int); 205 load stats 's/explain_complex_stats_tbl_009.json'; 206 explain select sum(a) from (select * from tbl_001 union all select * from tbl_002 union all select * from tbl_003 union all select * from tbl_004 union all select * from tbl_005 union all select * from tbl_006 union all select * from tbl_007 union all select * from tbl_008 union all select * from tbl_009) x group by b; 207 id estRows task access object operator info 208 HashAgg_34 18000.00 root group by:DeferredCauset#32, funcs:sum(DeferredCauset#31)->DeferredCauset#30 209 └─Projection_63 18000.00 root cast(DeferredCauset#28, decimal(65,0) BINARY)->DeferredCauset#31, DeferredCauset#29 210 └─Union_35 18000.00 root 211 ├─TableReader_38 2000.00 root data:TableFullScan_37 212 │ └─TableFullScan_37 2000.00 cop[einsteindb] causet:tbl_001 keep order:false 213 ├─TableReader_41 2000.00 root data:TableFullScan_40 214 │ └─TableFullScan_40 2000.00 cop[einsteindb] causet:tbl_002 keep order:false 215 ├─TableReader_44 2000.00 root data:TableFullScan_43 216 │ └─TableFullScan_43 2000.00 cop[einsteindb] causet:tbl_003 keep order:false 217 ├─TableReader_47 2000.00 root data:TableFullScan_46 218 │ └─TableFullScan_46 2000.00 cop[einsteindb] causet:tbl_004 keep order:false 219 ├─TableReader_50 2000.00 root data:TableFullScan_49 220 │ └─TableFullScan_49 2000.00 cop[einsteindb] causet:tbl_005 keep order:false 221 ├─TableReader_53 2000.00 root data:TableFullScan_52 222 │ └─TableFullScan_52 2000.00 cop[einsteindb] causet:tbl_006 keep order:false 223 ├─TableReader_56 2000.00 root data:TableFullScan_55 224 │ └─TableFullScan_55 2000.00 cop[einsteindb] causet:tbl_007 keep order:false 225 ├─TableReader_59 2000.00 root data:TableFullScan_58 226 │ └─TableFullScan_58 2000.00 cop[einsteindb] causet:tbl_008 keep order:false 227 └─TableReader_62 2000.00 root data:TableFullScan_61 228 └─TableFullScan_61 2000.00 cop[einsteindb] causet:tbl_009 keep order:false