413 lines
29 KiB
Plaintext
413 lines
29 KiB
Plaintext
#
|
|
# Test cases for the secondary_engine_cost_threshold variable.
|
|
#
|
|
SELECT @@secondary_engine_cost_threshold,
|
|
@@global.secondary_engine_cost_threshold;
|
|
@@secondary_engine_cost_threshold @@global.secondary_engine_cost_threshold
|
|
0.000000 0.000000
|
|
SET @saved_threshold = @@secondary_engine_cost_threshold;
|
|
SET @@secondary_engine_cost_threshold = -100;
|
|
Warnings:
|
|
Warning 1292 Truncated incorrect secondary_engine_cost_threshold value: '-100'
|
|
SELECT @@secondary_engine_cost_threshold;
|
|
@@secondary_engine_cost_threshold
|
|
0.000000
|
|
CREATE TABLE t1(x INT, y INT);
|
|
INSERT INTO t1 VALUES (1, 2), (2, 3), (3, 4);
|
|
CREATE VIEW v1 AS
|
|
SELECT t1.x x1, t2.x x2, t3.x x3, t4.x x4, t5.x x5, t6.x x6, t7.x x7,
|
|
t8.x x8, t9.x x9, t10.x x10, t11.x x11, t12.x x12, t13.x x13
|
|
FROM t1, t1 t2, t1 t3, t1 t4, t1 t5, t1 t6, t1 t7, t1 t8, t1 t9,
|
|
t1 t10, t1 t11, t1 t12, t1 t13;
|
|
ANALYZE TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status OK
|
|
EXPLAIN SELECT * FROM t1;
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select `test`.`t1`.`x` AS `x`,`test`.`t1`.`y` AS `y` from `test`.`t1`
|
|
SHOW STATUS LIKE 'Last_query_cost';
|
|
Variable_name Value
|
|
Last_query_cost 0.549000
|
|
EXPLAIN SELECT (SELECT y FROM t1 WHERE x = 1);
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
|
2 SUBQUERY t1 NULL ALL NULL NULL NULL NULL 3 33.33 Using where
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select (/* select#2 */ select `test`.`t1`.`y` from `test`.`t1` where (`test`.`t1`.`x` = 1)) AS `(SELECT y FROM t1 WHERE x = 1)`
|
|
SHOW STATUS LIKE 'Last_query_cost';
|
|
Variable_name Value
|
|
Last_query_cost 0.549000
|
|
EXPLAIN SELECT * FROM v1;
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
1 SIMPLE t2 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t3 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t4 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t5 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t6 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t7 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t8 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t9 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t10 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t11 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t12 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t13 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select `test`.`t1`.`x` AS `x1`,`test`.`t2`.`x` AS `x2`,`test`.`t3`.`x` AS `x3`,`test`.`t4`.`x` AS `x4`,`test`.`t5`.`x` AS `x5`,`test`.`t6`.`x` AS `x6`,`test`.`t7`.`x` AS `x7`,`test`.`t8`.`x` AS `x8`,`test`.`t9`.`x` AS `x9`,`test`.`t10`.`x` AS `x10`,`test`.`t11`.`x` AS `x11`,`test`.`t12`.`x` AS `x12`,`test`.`t13`.`x` AS `x13` from `test`.`t1` join `test`.`t1` `t2` join `test`.`t1` `t3` join `test`.`t1` `t4` join `test`.`t1` `t5` join `test`.`t1` `t6` join `test`.`t1` `t7` join `test`.`t1` `t8` join `test`.`t1` `t9` join `test`.`t1` `t10` join `test`.`t1` `t11` join `test`.`t1` `t12` join `test`.`t1` `t13`
|
|
SHOW STATUS LIKE 'Last_query_cost';
|
|
Variable_name Value
|
|
Last_query_cost 239195.262369
|
|
EXPLAIN SELECT * FROM t1 WHERE x = (SELECT COUNT(*) FROM v1);
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 PRIMARY t1 NULL ALL NULL NULL NULL NULL 3 33.33 Using where
|
|
2 SUBQUERY t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t2 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t3 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t4 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t5 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t6 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t7 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t8 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t9 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t10 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t11 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t12 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t13 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select `test`.`t1`.`x` AS `x`,`test`.`t1`.`y` AS `y` from `test`.`t1` where (`test`.`t1`.`x` = (/* select#2 */ select count(0) from `test`.`t1` join `test`.`t1` `t2` join `test`.`t1` `t3` join `test`.`t1` `t4` join `test`.`t1` `t5` join `test`.`t1` `t6` join `test`.`t1` `t7` join `test`.`t1` `t8` join `test`.`t1` `t9` join `test`.`t1` `t10` join `test`.`t1` `t11` join `test`.`t1` `t12` join `test`.`t1` `t13`))
|
|
SHOW STATUS LIKE 'Last_query_cost';
|
|
Variable_name Value
|
|
Last_query_cost 239152.098000
|
|
EXPLAIN SELECT * FROM t1 tt WHERE x = (SELECT SUM(x) FROM t1);
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 PRIMARY tt NULL ALL NULL NULL NULL NULL 3 33.33 Using where
|
|
2 SUBQUERY t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select `test`.`tt`.`x` AS `x`,`test`.`tt`.`y` AS `y` from `test`.`t1` `tt` where (`test`.`tt`.`x` = (/* select#2 */ select sum(`test`.`t1`.`x`) from `test`.`t1`))
|
|
SHOW STATUS LIKE 'Last_query_cost';
|
|
Variable_name Value
|
|
Last_query_cost 1.098000
|
|
EXPLAIN SELECT * FROM t1 tt
|
|
WHERE x IN (SELECT SUM(x) FROM t1 WHERE x = (SELECT tt.y));
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 PRIMARY tt NULL ALL NULL NULL NULL NULL 3 100.00 Using where
|
|
2 DEPENDENT SUBQUERY t1 NULL ALL NULL NULL NULL NULL 3 100.00 Using where
|
|
3 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
|
Warnings:
|
|
Note 1276 Field or reference 'test.tt.y' of SELECT #3 was resolved in SELECT #1
|
|
Note 1003 /* select#1 */ select `test`.`tt`.`x` AS `x`,`test`.`tt`.`y` AS `y` from `test`.`t1` `tt` where <in_optimizer>(`test`.`tt`.`x`,<exists>(/* select#2 */ select 1 from `test`.`t1` where (`test`.`t1`.`x` = (/* select#3 */ select `test`.`tt`.`y`)) having (<cache>(`test`.`tt`.`x`) = <ref_null_helper>(sum(`test`.`t1`.`x`)))))
|
|
SHOW STATUS LIKE 'Last_query_cost';
|
|
Variable_name Value
|
|
Last_query_cost 2.196000
|
|
ALTER TABLE t1 SECONDARY_ENGINE MOCK;
|
|
ALTER TABLE t1 SECONDARY_LOAD;
|
|
ANALYZE TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status OK
|
|
SET @@secondary_engine_cost_threshold = 0;
|
|
SELECT @@secondary_engine_cost_threshold,
|
|
@@global.secondary_engine_cost_threshold;
|
|
@@secondary_engine_cost_threshold @@global.secondary_engine_cost_threshold
|
|
0.000000 0.000000
|
|
FLUSH STATUS;
|
|
EXPLAIN SELECT * FROM t1;
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 Using secondary engine MOCK
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select `test`.`t1`.`x` AS `x`,`test`.`t1`.`y` AS `y` from `test`.`t1`
|
|
SELECT * FROM t1;
|
|
x y
|
|
EXPLAIN SELECT (SELECT y FROM t1 WHERE x = 1);
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
|
2 SUBQUERY t1 NULL ALL NULL NULL NULL NULL 3 33.33 Using where; Using secondary engine MOCK
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select (/* select#2 */ select `test`.`t1`.`y` from `test`.`t1` where (`test`.`t1`.`x` = 1)) AS `(SELECT y FROM t1 WHERE x = 1)`
|
|
SELECT (SELECT y FROM t1 WHERE x = 1);
|
|
(SELECT y FROM t1 WHERE x = 1)
|
|
NULL
|
|
EXPLAIN SELECT * FROM v1;
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 Using secondary engine MOCK
|
|
1 SIMPLE t2 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t3 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t4 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t5 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t6 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t7 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t8 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t9 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t10 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t11 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t12 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t13 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select `test`.`t1`.`x` AS `x1`,`test`.`t2`.`x` AS `x2`,`test`.`t3`.`x` AS `x3`,`test`.`t4`.`x` AS `x4`,`test`.`t5`.`x` AS `x5`,`test`.`t6`.`x` AS `x6`,`test`.`t7`.`x` AS `x7`,`test`.`t8`.`x` AS `x8`,`test`.`t9`.`x` AS `x9`,`test`.`t10`.`x` AS `x10`,`test`.`t11`.`x` AS `x11`,`test`.`t12`.`x` AS `x12`,`test`.`t13`.`x` AS `x13` from `test`.`t1` join `test`.`t1` `t2` join `test`.`t1` `t3` join `test`.`t1` `t4` join `test`.`t1` `t5` join `test`.`t1` `t6` join `test`.`t1` `t7` join `test`.`t1` `t8` join `test`.`t1` `t9` join `test`.`t1` `t10` join `test`.`t1` `t11` join `test`.`t1` `t12` join `test`.`t1` `t13`
|
|
SELECT * FROM v1;
|
|
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13
|
|
EXPLAIN SELECT * FROM t1 WHERE x = (SELECT COUNT(*) FROM v1);
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 PRIMARY t1 NULL ALL NULL NULL NULL NULL 3 33.33 Using where; Using secondary engine MOCK
|
|
2 SUBQUERY t1 NULL ALL NULL NULL NULL NULL 3 100.00 Using secondary engine MOCK
|
|
2 SUBQUERY t2 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t3 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t4 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t5 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t6 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t7 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t8 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t9 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t10 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t11 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t12 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t13 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select `test`.`t1`.`x` AS `x`,`test`.`t1`.`y` AS `y` from `test`.`t1` where (`test`.`t1`.`x` = (/* select#2 */ select count(0) from `test`.`t1` join `test`.`t1` `t2` join `test`.`t1` `t3` join `test`.`t1` `t4` join `test`.`t1` `t5` join `test`.`t1` `t6` join `test`.`t1` `t7` join `test`.`t1` `t8` join `test`.`t1` `t9` join `test`.`t1` `t10` join `test`.`t1` `t11` join `test`.`t1` `t12` join `test`.`t1` `t13`))
|
|
SELECT * FROM t1 WHERE x = (SELECT COUNT(*) FROM v1);
|
|
x y
|
|
EXPLAIN SELECT * FROM t1 tt WHERE x = (SELECT SUM(x) FROM t1);
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 PRIMARY tt NULL ALL NULL NULL NULL NULL 3 33.33 Using where; Using secondary engine MOCK
|
|
2 SUBQUERY t1 NULL ALL NULL NULL NULL NULL 3 100.00 Using secondary engine MOCK
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select `test`.`tt`.`x` AS `x`,`test`.`tt`.`y` AS `y` from `test`.`t1` `tt` where (`test`.`tt`.`x` = (/* select#2 */ select sum(`test`.`t1`.`x`) from `test`.`t1`))
|
|
SELECT * FROM t1 tt WHERE x = (SELECT SUM(x) FROM t1);
|
|
x y
|
|
EXPLAIN SELECT * FROM t1 tt
|
|
WHERE x IN (SELECT SUM(x) FROM t1 WHERE x = (SELECT tt.y));
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 PRIMARY tt NULL ALL NULL NULL NULL NULL 3 100.00 Using where; Using secondary engine MOCK
|
|
2 DEPENDENT SUBQUERY t1 NULL ALL NULL NULL NULL NULL 3 100.00 Using where; Using secondary engine MOCK
|
|
3 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
|
Warnings:
|
|
Note 1276 Field or reference 'test.tt.y' of SELECT #3 was resolved in SELECT #1
|
|
Note 1003 /* select#1 */ select `test`.`tt`.`x` AS `x`,`test`.`tt`.`y` AS `y` from `test`.`t1` `tt` where <in_optimizer>(`test`.`tt`.`x`,<exists>(/* select#2 */ select 1 from `test`.`t1` where (`test`.`t1`.`x` = (/* select#3 */ select `test`.`tt`.`y`)) having (<cache>(`test`.`tt`.`x`) = <ref_null_helper>(sum(`test`.`t1`.`x`)))))
|
|
SELECT * FROM t1 tt
|
|
WHERE x IN (SELECT SUM(x) FROM t1 WHERE x = (SELECT tt.y));
|
|
x y
|
|
SHOW STATUS LIKE 'Secondary_engine_execution_count';
|
|
Variable_name Value
|
|
Secondary_engine_execution_count 6
|
|
SET @@secondary_engine_cost_threshold = 100;
|
|
SELECT @@secondary_engine_cost_threshold,
|
|
@@global.secondary_engine_cost_threshold;
|
|
@@secondary_engine_cost_threshold @@global.secondary_engine_cost_threshold
|
|
100.000000 0.000000
|
|
FLUSH STATUS;
|
|
EXPLAIN SELECT * FROM t1;
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select `test`.`t1`.`x` AS `x`,`test`.`t1`.`y` AS `y` from `test`.`t1`
|
|
SELECT * FROM t1;
|
|
x y
|
|
1 2
|
|
2 3
|
|
3 4
|
|
EXPLAIN SELECT (SELECT y FROM t1 WHERE x = 1);
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
|
2 SUBQUERY t1 NULL ALL NULL NULL NULL NULL 3 33.33 Using where
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select (/* select#2 */ select `test`.`t1`.`y` from `test`.`t1` where (`test`.`t1`.`x` = 1)) AS `(SELECT y FROM t1 WHERE x = 1)`
|
|
SELECT (SELECT y FROM t1 WHERE x = 1);
|
|
(SELECT y FROM t1 WHERE x = 1)
|
|
2
|
|
EXPLAIN SELECT * FROM v1;
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 Using secondary engine MOCK
|
|
1 SIMPLE t2 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t3 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t4 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t5 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t6 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t7 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t8 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t9 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t10 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t11 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t12 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
1 SIMPLE t13 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select `test`.`t1`.`x` AS `x1`,`test`.`t2`.`x` AS `x2`,`test`.`t3`.`x` AS `x3`,`test`.`t4`.`x` AS `x4`,`test`.`t5`.`x` AS `x5`,`test`.`t6`.`x` AS `x6`,`test`.`t7`.`x` AS `x7`,`test`.`t8`.`x` AS `x8`,`test`.`t9`.`x` AS `x9`,`test`.`t10`.`x` AS `x10`,`test`.`t11`.`x` AS `x11`,`test`.`t12`.`x` AS `x12`,`test`.`t13`.`x` AS `x13` from `test`.`t1` join `test`.`t1` `t2` join `test`.`t1` `t3` join `test`.`t1` `t4` join `test`.`t1` `t5` join `test`.`t1` `t6` join `test`.`t1` `t7` join `test`.`t1` `t8` join `test`.`t1` `t9` join `test`.`t1` `t10` join `test`.`t1` `t11` join `test`.`t1` `t12` join `test`.`t1` `t13`
|
|
SELECT * FROM v1;
|
|
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13
|
|
EXPLAIN SELECT * FROM t1 WHERE x = (SELECT COUNT(*) FROM v1);
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 PRIMARY t1 NULL ALL NULL NULL NULL NULL 3 33.33 Using where; Using secondary engine MOCK
|
|
2 SUBQUERY t1 NULL ALL NULL NULL NULL NULL 3 100.00 Using secondary engine MOCK
|
|
2 SUBQUERY t2 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t3 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t4 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t5 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t6 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t7 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t8 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t9 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t10 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t11 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t12 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
2 SUBQUERY t13 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop); Using secondary engine MOCK
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select `test`.`t1`.`x` AS `x`,`test`.`t1`.`y` AS `y` from `test`.`t1` where (`test`.`t1`.`x` = (/* select#2 */ select count(0) from `test`.`t1` join `test`.`t1` `t2` join `test`.`t1` `t3` join `test`.`t1` `t4` join `test`.`t1` `t5` join `test`.`t1` `t6` join `test`.`t1` `t7` join `test`.`t1` `t8` join `test`.`t1` `t9` join `test`.`t1` `t10` join `test`.`t1` `t11` join `test`.`t1` `t12` join `test`.`t1` `t13`))
|
|
SELECT * FROM t1 WHERE x = (SELECT COUNT(*) FROM v1);
|
|
x y
|
|
EXPLAIN SELECT * FROM t1 tt WHERE x = (SELECT SUM(x) FROM t1);
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 PRIMARY tt NULL ALL NULL NULL NULL NULL 3 33.33 Using where
|
|
2 SUBQUERY t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select `test`.`tt`.`x` AS `x`,`test`.`tt`.`y` AS `y` from `test`.`t1` `tt` where (`test`.`tt`.`x` = (/* select#2 */ select sum(`test`.`t1`.`x`) from `test`.`t1`))
|
|
SELECT * FROM t1 tt WHERE x = (SELECT SUM(x) FROM t1);
|
|
x y
|
|
EXPLAIN SELECT * FROM t1 tt
|
|
WHERE x IN (SELECT SUM(x) FROM t1 WHERE x = (SELECT tt.y));
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 PRIMARY tt NULL ALL NULL NULL NULL NULL 3 100.00 Using where
|
|
2 DEPENDENT SUBQUERY t1 NULL ALL NULL NULL NULL NULL 3 100.00 Using where
|
|
3 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
|
Warnings:
|
|
Note 1276 Field or reference 'test.tt.y' of SELECT #3 was resolved in SELECT #1
|
|
Note 1003 /* select#1 */ select `test`.`tt`.`x` AS `x`,`test`.`tt`.`y` AS `y` from `test`.`t1` `tt` where <in_optimizer>(`test`.`tt`.`x`,<exists>(/* select#2 */ select 1 from `test`.`t1` where (`test`.`t1`.`x` = (/* select#3 */ select `test`.`tt`.`y`)) having (<cache>(`test`.`tt`.`x`) = <ref_null_helper>(sum(`test`.`t1`.`x`)))))
|
|
SELECT * FROM t1 tt
|
|
WHERE x IN (SELECT SUM(x) FROM t1 WHERE x = (SELECT tt.y));
|
|
x y
|
|
SHOW STATUS LIKE 'Secondary_engine_execution_count';
|
|
Variable_name Value
|
|
Secondary_engine_execution_count 2
|
|
SET @@secondary_engine_cost_threshold = 1000000;
|
|
SELECT @@secondary_engine_cost_threshold,
|
|
@@global.secondary_engine_cost_threshold;
|
|
@@secondary_engine_cost_threshold @@global.secondary_engine_cost_threshold
|
|
1000000.000000 0.000000
|
|
EXPLAIN SELECT * FROM t1;
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select `test`.`t1`.`x` AS `x`,`test`.`t1`.`y` AS `y` from `test`.`t1`
|
|
EXPLAIN SELECT (SELECT y FROM t1 WHERE x = 1);
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
|
2 SUBQUERY t1 NULL ALL NULL NULL NULL NULL 3 33.33 Using where
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select (/* select#2 */ select `test`.`t1`.`y` from `test`.`t1` where (`test`.`t1`.`x` = 1)) AS `(SELECT y FROM t1 WHERE x = 1)`
|
|
EXPLAIN SELECT * FROM v1;
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
1 SIMPLE t2 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t3 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t4 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t5 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t6 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t7 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t8 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t9 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t10 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t11 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t12 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
1 SIMPLE t13 NULL ALL NULL NULL NULL NULL 3 100.00 Using join buffer (Block Nested Loop)
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select `test`.`t1`.`x` AS `x1`,`test`.`t2`.`x` AS `x2`,`test`.`t3`.`x` AS `x3`,`test`.`t4`.`x` AS `x4`,`test`.`t5`.`x` AS `x5`,`test`.`t6`.`x` AS `x6`,`test`.`t7`.`x` AS `x7`,`test`.`t8`.`x` AS `x8`,`test`.`t9`.`x` AS `x9`,`test`.`t10`.`x` AS `x10`,`test`.`t11`.`x` AS `x11`,`test`.`t12`.`x` AS `x12`,`test`.`t13`.`x` AS `x13` from `test`.`t1` join `test`.`t1` `t2` join `test`.`t1` `t3` join `test`.`t1` `t4` join `test`.`t1` `t5` join `test`.`t1` `t6` join `test`.`t1` `t7` join `test`.`t1` `t8` join `test`.`t1` `t9` join `test`.`t1` `t10` join `test`.`t1` `t11` join `test`.`t1` `t12` join `test`.`t1` `t13`
|
|
EXPLAIN SELECT * FROM t1 WHERE x = (SELECT COUNT(*) FROM v1);
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 PRIMARY t1 NULL ALL NULL NULL NULL NULL 3 33.33 Using where
|
|
2 SUBQUERY t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t2 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t3 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t4 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t5 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t6 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t7 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t8 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t9 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t10 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t11 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t12 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
2 SUBQUERY t13 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select `test`.`t1`.`x` AS `x`,`test`.`t1`.`y` AS `y` from `test`.`t1` where (`test`.`t1`.`x` = (/* select#2 */ select count(0) from `test`.`t1` join `test`.`t1` `t2` join `test`.`t1` `t3` join `test`.`t1` `t4` join `test`.`t1` `t5` join `test`.`t1` `t6` join `test`.`t1` `t7` join `test`.`t1` `t8` join `test`.`t1` `t9` join `test`.`t1` `t10` join `test`.`t1` `t11` join `test`.`t1` `t12` join `test`.`t1` `t13`))
|
|
EXPLAIN SELECT * FROM t1 tt WHERE x = (SELECT SUM(x) FROM t1);
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 PRIMARY tt NULL ALL NULL NULL NULL NULL 3 33.33 Using where
|
|
2 SUBQUERY t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select `test`.`tt`.`x` AS `x`,`test`.`tt`.`y` AS `y` from `test`.`t1` `tt` where (`test`.`tt`.`x` = (/* select#2 */ select sum(`test`.`t1`.`x`) from `test`.`t1`))
|
|
EXPLAIN SELECT * FROM t1 tt
|
|
WHERE x IN (SELECT SUM(x) FROM t1 WHERE x = (SELECT tt.y));
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 PRIMARY tt NULL ALL NULL NULL NULL NULL 3 100.00 Using where
|
|
2 DEPENDENT SUBQUERY t1 NULL ALL NULL NULL NULL NULL 3 100.00 Using where
|
|
3 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
|
Warnings:
|
|
Note 1276 Field or reference 'test.tt.y' of SELECT #3 was resolved in SELECT #1
|
|
Note 1003 /* select#1 */ select `test`.`tt`.`x` AS `x`,`test`.`tt`.`y` AS `y` from `test`.`t1` `tt` where <in_optimizer>(`test`.`tt`.`x`,<exists>(/* select#2 */ select 1 from `test`.`t1` where (`test`.`t1`.`x` = (/* select#3 */ select `test`.`tt`.`y`)) having (<cache>(`test`.`tt`.`x`) = <ref_null_helper>(sum(`test`.`t1`.`x`)))))
|
|
EXPLAIN SELECT /*+ SET_VAR(secondary_engine_cost_threshold = 0) */ * FROM t1;
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 Using secondary engine MOCK
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select /*+ SET_VAR(secondary_engine_cost_threshold=0) */ `test`.`t1`.`x` AS `x`,`test`.`t1`.`y` AS `y` from `test`.`t1`
|
|
EXPLAIN SELECT /*+ SET_VAR(secondary_engine_cost_threshold = 100) */ * FROM t1;
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select /*+ SET_VAR(secondary_engine_cost_threshold=100) */ `test`.`t1`.`x` AS `x`,`test`.`t1`.`y` AS `y` from `test`.`t1`
|
|
EXPLAIN
|
|
SELECT /*+ SET_VAR(secondary_engine_cost_threshold = 1000000)
|
|
SET_VAR(use_secondary_engine = FORCED) */
|
|
* FROM t1;
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 Using secondary engine MOCK
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select /*+ SET_VAR(secondary_engine_cost_threshold=1000000) SET_VAR(use_secondary_engine='FORCED') */ `test`.`t1`.`x` AS `x`,`test`.`t1`.`y` AS `y` from `test`.`t1`
|
|
EXPLAIN
|
|
SELECT /*+ SET_VAR(secondary_engine_cost_threshold = 0)
|
|
SET_VAR(use_secondary_engine = OFF) */
|
|
* FROM t1;
|
|
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
|
1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 3 100.00 NULL
|
|
Warnings:
|
|
Note 1003 /* select#1 */ select /*+ SET_VAR(secondary_engine_cost_threshold=0) SET_VAR(use_secondary_engine='OFF') */ `test`.`t1`.`x` AS `x`,`test`.`t1`.`y` AS `y` from `test`.`t1`
|
|
FLUSH STATUS;
|
|
PREPARE ps FROM 'SELECT * FROM t1';
|
|
SET @@secondary_engine_cost_threshold = 0;
|
|
EXECUTE ps;
|
|
x y
|
|
SHOW STATUS LIKE 'Secondary_engine_execution_count';
|
|
Variable_name Value
|
|
Secondary_engine_execution_count 1
|
|
SET @@secondary_engine_cost_threshold = 100;
|
|
EXECUTE ps;
|
|
x y
|
|
1 2
|
|
2 3
|
|
3 4
|
|
SHOW STATUS LIKE 'Secondary_engine_execution_count';
|
|
Variable_name Value
|
|
Secondary_engine_execution_count 1
|
|
SET @@secondary_engine_cost_threshold = 0;
|
|
EXECUTE ps;
|
|
x y
|
|
SHOW STATUS LIKE 'Secondary_engine_execution_count';
|
|
Variable_name Value
|
|
Secondary_engine_execution_count 2
|
|
SET @@secondary_engine_cost_threshold = 100;
|
|
EXECUTE ps;
|
|
x y
|
|
1 2
|
|
2 3
|
|
3 4
|
|
SHOW STATUS LIKE 'Secondary_engine_execution_count';
|
|
Variable_name Value
|
|
Secondary_engine_execution_count 2
|
|
DROP PREPARE ps;
|
|
DROP TABLE t1;
|
|
DROP VIEW v1;
|
|
SET @@secondary_engine_cost_threshold = @saved_threshold;
|
|
SELECT @@secondary_engine_cost_threshold,
|
|
@@global.secondary_engine_cost_threshold;
|
|
@@secondary_engine_cost_threshold @@global.secondary_engine_cost_threshold
|
|
0.000000 0.000000
|
|
UNINSTALL PLUGIN mock;
|