mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
Merge @@optimizer_switch default settings changes into 5.3
This commit is contained in:
commit
a4f5e01475
104 changed files with 7341 additions and 425 deletions
|
@ -104,7 +104,7 @@ insert into t1 (b) values ("hello"),("my"),("world");
|
|||
create table t2 (key (b)) select * from t1;
|
||||
explain select * from t2 where b="world";
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ref B B 21 const 1 Using index condition
|
||||
1 SIMPLE t2 ref B B 21 const 1 Using where
|
||||
select * from t2 where b="world";
|
||||
a B
|
||||
3 world
|
||||
|
|
|
@ -566,31 +566,31 @@ INSERT INTO t1 VALUES ('i','i');
|
|||
INSERT INTO t1 VALUES ('j','j');
|
||||
EXPLAIN SELECT * FROM t1 WHERE s1='a';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref s1 s1 11 const 1 Using index condition
|
||||
1 SIMPLE t1 ref s1 s1 11 const 1 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE s2='a';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref s2 s2 11 const 1 Using index condition
|
||||
1 SIMPLE t1 ref s2 s2 11 const 1 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE s1='a' COLLATE latin1_german1_ci;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref s1 s1 11 const 1 Using index condition
|
||||
1 SIMPLE t1 ref s1 s1 11 const 1 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE s2='a' COLLATE latin1_german1_ci;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL s2 NULL NULL NULL 10 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE s1 BETWEEN 'a' AND 'b' COLLATE latin1_german1_ci;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range s1 s1 11 NULL 2 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range s1 s1 11 NULL 2 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE s2 BETWEEN 'a' AND 'b' COLLATE latin1_german1_ci;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL s2 NULL NULL NULL 10 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE s1 IN ('a','b' COLLATE latin1_german1_ci);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range s1 s1 11 NULL 2 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range s1 s1 11 NULL 2 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE s2 IN ('a','b' COLLATE latin1_german1_ci);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL s2 NULL NULL NULL 10 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE s1 LIKE 'a' COLLATE latin1_german1_ci;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range s1 s1 11 NULL 1 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range s1 s1 11 NULL 1 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE s2 LIKE 'a' COLLATE latin1_german1_ci;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL s2 NULL NULL NULL 10 Using where
|
||||
|
|
|
@ -13,7 +13,7 @@ id str
|
|||
3 foo
|
||||
explain select * from t1 where str is null;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref str str 11 const 1 Using index condition
|
||||
1 SIMPLE t1 ref str str 11 const 1 Using where
|
||||
explain select * from t1 where str="foo";
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 const str str 11 const 1
|
||||
|
|
|
@ -241,7 +241,7 @@ insert into t2 select C.a*2+1, 'yes' from t1 C;
|
|||
explain
|
||||
select * from t2 where a NOT IN (0, 2,4,6,8,10,12,14,16,18);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range a a 5 NULL 12 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t2 range a a 5 NULL 12 Using where
|
||||
select * from t2 where a NOT IN (0, 2,4,6,8,10,12,14,16,18);
|
||||
a filler
|
||||
1 yes
|
||||
|
@ -256,10 +256,10 @@ a filler
|
|||
19 yes
|
||||
explain select * from t2 force index(a) where a NOT IN (2,2,2,2,2,2);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range a a 5 NULL 912 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t2 range a a 5 NULL 912 Using where
|
||||
explain select * from t2 force index(a) where a <> 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range a a 5 NULL 912 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t2 range a a 5 NULL 912 Using where
|
||||
drop table t2;
|
||||
create table t2 (a datetime, filler char(200), key(a));
|
||||
insert into t2 select '2006-04-25 10:00:00' + interval C.a minute,
|
||||
|
@ -271,7 +271,7 @@ select * from t2 where a NOT IN (
|
|||
'2006-04-25 10:00:00','2006-04-25 10:02:00','2006-04-25 10:04:00',
|
||||
'2006-04-25 10:06:00', '2006-04-25 10:08:00');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range a a 9 NULL 18 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t2 range a a 9 NULL 18 Using where
|
||||
select * from t2 where a NOT IN (
|
||||
'2006-04-25 10:00:00','2006-04-25 10:02:00','2006-04-25 10:04:00',
|
||||
'2006-04-25 10:06:00', '2006-04-25 10:08:00');
|
||||
|
@ -295,7 +295,7 @@ insert into t2 values ('fon', '1'), ('fop','1'), ('barbaq','1'),
|
|||
('barbas','1'), ('bazbazbay', '1'),('zz','1');
|
||||
explain select * from t2 where a not in('foo','barbar', 'bazbazbaz');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range a a 13 NULL 7 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t2 range a a 13 NULL 7 Using where
|
||||
drop table t2;
|
||||
create table t2 (a decimal(10,5), filler char(200), key(a));
|
||||
insert into t2 select 345.67890, 'no' from t1 A, t1 B;
|
||||
|
@ -306,7 +306,7 @@ insert into t2 values (0, '1'), (22334.123,'1'), (33333,'1'),
|
|||
explain
|
||||
select * from t2 where a not in (345.67890, 43245.34, 64224.56344);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range a a 7 NULL 7 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t2 range a a 7 NULL 7 Using where
|
||||
select * from t2 where a not in (345.67890, 43245.34, 64224.56344);
|
||||
a filler
|
||||
0.00000 1
|
||||
|
@ -624,16 +624,16 @@ INSERT INTO t1 (c_int) SELECT 0 FROM t1;
|
|||
INSERT INTO t1 (c_int) SELECT 0 FROM t1;
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_int IN (1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_int c_int 4 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_int c_int 4 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_int IN (NULL, 1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_int c_int 4 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_int c_int 4 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_int IN (1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_int c_int 4 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_int c_int 4 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_int IN (1, NULL, 2, NULL, 3, NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_int c_int 4 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_int c_int 4 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_int IN (NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
|
@ -642,10 +642,10 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_decimal IN (1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_decimal c_decimal 3 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_decimal c_decimal 3 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_decimal IN (NULL, 1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_decimal c_decimal 3 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_decimal c_decimal 3 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_decimal IN (NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
|
@ -654,10 +654,10 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_float IN (1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_float c_float 4 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_float c_float 4 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_float IN (NULL, 1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_float c_float 4 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_float c_float 4 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_float IN (NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
|
@ -666,10 +666,10 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_bit IN (1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_bit c_bit 2 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_bit c_bit 2 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_bit IN (NULL, 1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_bit c_bit 2 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_bit c_bit 2 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_bit IN (NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
|
@ -679,11 +679,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
EXPLAIN SELECT * FROM t1 WHERE c_date
|
||||
IN ('2009-09-01', '2009-09-02', '2009-09-03');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_date c_date 3 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_date c_date 3 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_date
|
||||
IN (NULL, '2009-09-01', '2009-09-02', '2009-09-03');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_date c_date 3 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_date c_date 3 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_date IN (NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
|
@ -693,11 +693,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
EXPLAIN SELECT * FROM t1 WHERE c_datetime
|
||||
IN ('2009-09-01 00:00:01', '2009-09-02 00:00:01', '2009-09-03 00:00:01');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_datetime c_datetime 8 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_datetime c_datetime 8 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_datetime
|
||||
IN (NULL, '2009-09-01 00:00:01', '2009-09-02 00:00:01', '2009-09-03 00:00:01');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_datetime c_datetime 8 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_datetime c_datetime 8 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_datetime IN (NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
|
@ -707,11 +707,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
EXPLAIN SELECT * FROM t1 WHERE c_timestamp
|
||||
IN ('2009-09-01 00:00:01', '2009-09-01 00:00:02', '2009-09-01 00:00:03');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_timestamp c_timestamp 4 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_timestamp c_timestamp 4 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_timestamp
|
||||
IN (NULL, '2009-09-01 00:00:01', '2009-09-01 00:00:02', '2009-09-01 00:00:03');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_timestamp c_timestamp 4 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_timestamp c_timestamp 4 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_timestamp IN (NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
|
@ -720,10 +720,10 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_year IN (1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_year c_year 1 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_year c_year 1 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_year IN (NULL, 1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_year c_year 1 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_year c_year 1 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_year IN (NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
|
@ -732,10 +732,10 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_char IN ('1', '2', '3');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_char c_char 10 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_char c_char 10 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_char IN (NULL, '1', '2', '3');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c_char c_char 10 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c_char c_char 10 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_char IN (NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
|
|
|
@ -1898,8 +1898,8 @@ SELECT a, AVG(t1.b),
|
|||
FROM t1 GROUP BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 index NULL a 10 NULL 9 Using index
|
||||
3 DEPENDENT SUBQUERY t12 ref a a 10 func,func 2 Using index condition
|
||||
2 DEPENDENT SUBQUERY t11 ref a a 10 func,func 2 Using index condition
|
||||
3 DEPENDENT SUBQUERY t12 ref a a 10 func,func 2 Using where
|
||||
2 DEPENDENT SUBQUERY t11 ref a a 10 func,func 2 Using where
|
||||
SELECT a, AVG(t1.b),
|
||||
(SELECT t11.c FROM t1 t11 WHERE t11.a = t1.a AND t11.b = AVG(t1.b)) AS t11c,
|
||||
(SELECT t12.c FROM t1 t12 WHERE t12.a = t1.a AND t12.b = AVG(t1.b)) AS t12c
|
||||
|
|
|
@ -74,12 +74,12 @@ EXPLAIN
|
|||
SELECT * FROM City
|
||||
WHERE Name LIKE 'M%' AND Population > 300000;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population,Name Name 35 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range Population,Name Name 35 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE Name LIKE 'M%' AND Population > 7000000;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population,Name Population 4 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range Population,Name Population 4 NULL # Using where
|
||||
SELECT * FROM City USE INDEX ()
|
||||
WHERE Name LIKE 'C%' AND Population > 1000000;
|
||||
ID Name Country Population
|
||||
|
@ -334,8 +334,8 @@ ID Name Country Population
|
|||
SELECT * FROM City
|
||||
WHERE Name LIKE 'M%' AND Population > 7000000;
|
||||
ID Name Country Population
|
||||
1024 Mumbai (Bombay) IND 10500000
|
||||
3580 Moscow RUS 8389200
|
||||
1024 Mumbai (Bombay) IND 10500000
|
||||
SELECT COUNT(*) FROM City WHERE Name BETWEEN 'M' AND 'N';
|
||||
COUNT(*)
|
||||
301
|
||||
|
@ -371,7 +371,7 @@ EXPLAIN
|
|||
SELECT * FROM City
|
||||
WHERE Name BETWEEN 'G' AND 'K' AND Population > 500000 AND Country LIKE 'C%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population,Name,Country Name # NULL # Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range Population,Name,Country Name # NULL # Using where
|
||||
SELECT * FROM City USE INDEX ()
|
||||
WHERE Name BETWEEN 'M' AND 'N' AND Population > 1000000 AND Country LIKE 'C%';
|
||||
ID Name Country Population
|
||||
|
@ -410,18 +410,18 @@ ID Name Country Population
|
|||
SELECT * FROM City
|
||||
WHERE Name BETWEEN 'G' AND 'K' AND Population > 500000 AND Country LIKE 'C%';
|
||||
ID Name Country Population
|
||||
1895 Harbin CHN 4289800
|
||||
1904 Jinan CHN 2278100
|
||||
1905 Hangzhou CHN 2190500
|
||||
1914 Guiyang CHN 1465200
|
||||
1916 Hefei CHN 1369100
|
||||
1923 Jilin CHN 1040000
|
||||
1927 Hohhot CHN 916700
|
||||
1928 Handan CHN 840000
|
||||
1937 Huainan CHN 700000
|
||||
1938 Jixi CHN 683885
|
||||
1944 Jinzhou CHN 570000
|
||||
1905 Hangzhou CHN 2190500
|
||||
1895 Harbin CHN 4289800
|
||||
1916 Hefei CHN 1369100
|
||||
1950 Hegang CHN 520000
|
||||
1927 Hohhot CHN 916700
|
||||
1937 Huainan CHN 700000
|
||||
1923 Jilin CHN 1040000
|
||||
1904 Jinan CHN 2278100
|
||||
1944 Jinzhou CHN 570000
|
||||
1938 Jixi CHN 683885
|
||||
SELECT COUNT(*) FROM City WHERE ID BETWEEN 501 AND 1000;
|
||||
COUNT(*)
|
||||
500
|
||||
|
@ -462,7 +462,7 @@ EXPLAIN
|
|||
SELECT * FROM City
|
||||
WHERE ID BETWEEN 501 AND 1000 AND Population > 700000 AND Country LIKE 'C%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY,Population,Country Population 4 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY,Population,Country Population 4 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ID BETWEEN 1 AND 500 AND Population > 1000000 AND Country LIKE 'A%';
|
||||
|
@ -472,7 +472,7 @@ EXPLAIN
|
|||
SELECT * FROM City
|
||||
WHERE ID BETWEEN 2001 AND 2500 AND Population > 300000 AND Country LIKE 'H%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY,Population,Country Country 3 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY,Population,Country Country 3 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ID BETWEEN 3701 AND 4000 AND Population > 1000000
|
||||
|
@ -484,7 +484,7 @@ SELECT * FROM City
|
|||
WHERE ID BETWEEN 3001 AND 4000 AND Population > 600000
|
||||
AND Country BETWEEN 'S' AND 'Z' ;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY,Population,Country Population 4 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY,Population,Country Population 4 NULL # Using where
|
||||
SELECT * FROM City USE INDEX ()
|
||||
WHERE ID BETWEEN 501 AND 1000 AND Population > 700000 AND Country LIKE 'C%';
|
||||
ID Name Country Population
|
||||
|
@ -733,7 +733,7 @@ EXPLAIN
|
|||
SELECT * FROM City
|
||||
WHERE Name BETWEEN 'G' AND 'J' AND Population > 500000 AND Country LIKE 'C%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population,Country,Name Name 35 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range Population,Country,Name Name 35 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ID BETWEEN 1 AND 500 AND Population > 1000000 AND Country LIKE 'A%';
|
||||
|
@ -744,7 +744,7 @@ SELECT * FROM City
|
|||
WHERE ID BETWEEN 3001 AND 4000 AND Population > 600000
|
||||
AND Country BETWEEN 'S' AND 'Z';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY,Population,Country Population 4 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY,Population,Country Population 4 NULL # Using where
|
||||
SELECT * FROM City WHERE
|
||||
Name LIKE 'C%' AND Population > 1000000;
|
||||
ID Name Country Population
|
||||
|
@ -785,14 +785,14 @@ ID Name Country Population
|
|||
SELECT * FROM City
|
||||
WHERE Name BETWEEN 'G' AND 'J' AND Population > 500000 AND Country LIKE 'C%';
|
||||
ID Name Country Population
|
||||
1895 Harbin CHN 4289800
|
||||
1905 Hangzhou CHN 2190500
|
||||
1914 Guiyang CHN 1465200
|
||||
1916 Hefei CHN 1369100
|
||||
1927 Hohhot CHN 916700
|
||||
1928 Handan CHN 840000
|
||||
1937 Huainan CHN 700000
|
||||
1905 Hangzhou CHN 2190500
|
||||
1895 Harbin CHN 4289800
|
||||
1916 Hefei CHN 1369100
|
||||
1950 Hegang CHN 520000
|
||||
1927 Hohhot CHN 916700
|
||||
1937 Huainan CHN 700000
|
||||
SELECT * FROM City
|
||||
WHERE ID BETWEEN 1 AND 500 AND Population > 1000000 AND Country LIKE 'A%';
|
||||
ID Name Country Population
|
||||
|
@ -1035,12 +1035,12 @@ EXPLAIN
|
|||
SELECT * FROM t1
|
||||
WHERE (f1 < 535 OR f1 > 985) AND ( f4='r' OR f4 LIKE 'a%' ) ;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY,f4 f4 35 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY,f4 f4 35 NULL # Using where
|
||||
SELECT * FROM t1
|
||||
WHERE (f1 < 535 OR f1 > 985) AND ( f4='r' OR f4 LIKE 'a%' ) ;
|
||||
f1 f4 f5
|
||||
994 r 2
|
||||
996 A 2
|
||||
998 a 0
|
||||
994 r 2
|
||||
DROP TABLE t1;
|
||||
SET SESSION optimizer_switch='index_merge_sort_intersection=on';
|
||||
|
|
|
@ -21,7 +21,7 @@ Table Op Msg_type Msg_text
|
|||
test.t0 analyze status OK
|
||||
explain select * from t0 where key1 < 3 or key1 > 1020;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t0 range i1 i1 4 NULL 78 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t0 range i1 i1 4 NULL 78 Using where
|
||||
explain
|
||||
select * from t0 where key1 < 3 or key2 > 1020;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
|
@ -74,7 +74,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t0 index_merge i1,i2 i1,i2 4,4 NULL 17 Using sort_union(i1,i2); Using where
|
||||
explain select * from t0 where key2 = 45 or key1 <=> null;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t0 range i1,i2 i2 4 NULL 1 Using where; Rowid-ordered scan
|
||||
1 SIMPLE t0 range i1,i2 i2 4 NULL 1 Using where
|
||||
explain select * from t0 where key2 = 45 or key1 is not null;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t0 ALL i1,i2 NULL NULL NULL 1024 Using where
|
||||
|
@ -277,7 +277,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
explain select * from t0,t1 where t0.key1 < 3 and
|
||||
(t1.key1 = t0.key1 or t1.key8 = t0.key1);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t0 range i1 i1 4 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t0 range i1 i1 4 NULL 3 Using where
|
||||
1 SIMPLE t1 ALL i1,i8 NULL NULL NULL 1024 Range checked for each record (index map: 0x81)
|
||||
explain select * from t1 where key1=3 or key2=4
|
||||
union select * from t1 where key1<4 or key3=5;
|
||||
|
@ -1378,19 +1378,19 @@ primary key (pk1, pk2)
|
|||
);
|
||||
explain select * from t1 where pk1 = 1 and pk2 < 80 and key1=0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY,key1 PRIMARY 8 NULL 7 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY,key1 PRIMARY 8 NULL 7 Using where
|
||||
select * from t1 where pk1 = 1 and pk2 < 80 and key1=0;
|
||||
pk1 pk2 key1 key2 pktail1ok pktail2ok pktail3bad pktail4bad pktail5bad pk2copy badkey filler1 filler2
|
||||
1 19 0 0 0 0 0 0 0 19 0 filler-data-19 filler2
|
||||
1 18 0 0 0 0 0 0 0 18 0 filler-data-18 filler2
|
||||
1 17 0 0 0 0 0 0 0 17 0 filler-data-17 filler2
|
||||
1 16 0 0 0 0 0 0 0 16 0 filler-data-16 filler2
|
||||
1 15 0 0 0 0 0 0 0 15 0 filler-data-15 filler2
|
||||
1 14 0 0 0 0 0 0 0 14 0 filler-data-14 filler2
|
||||
1 13 0 0 0 0 0 0 0 13 0 filler-data-13 filler2
|
||||
1 12 0 0 0 0 0 0 0 12 0 filler-data-12 filler2
|
||||
1 11 0 0 0 0 0 0 0 11 0 filler-data-11 filler2
|
||||
1 10 0 0 0 0 0 0 0 10 0 filler-data-10 filler2
|
||||
1 11 0 0 0 0 0 0 0 11 0 filler-data-11 filler2
|
||||
1 12 0 0 0 0 0 0 0 12 0 filler-data-12 filler2
|
||||
1 13 0 0 0 0 0 0 0 13 0 filler-data-13 filler2
|
||||
1 14 0 0 0 0 0 0 0 14 0 filler-data-14 filler2
|
||||
1 15 0 0 0 0 0 0 0 15 0 filler-data-15 filler2
|
||||
1 16 0 0 0 0 0 0 0 16 0 filler-data-16 filler2
|
||||
1 17 0 0 0 0 0 0 0 17 0 filler-data-17 filler2
|
||||
1 18 0 0 0 0 0 0 0 18 0 filler-data-18 filler2
|
||||
1 19 0 0 0 0 0 0 0 19 0 filler-data-19 filler2
|
||||
explain select pk1,pk2 from t1 where key1 = 10 and key2=10 and 2*pk1+1 < 2*96+1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge key1,key2 key1,key2 4,4 NULL 1 Using intersect(key1,key2); Using where
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
set @innodb_test_tmp=@@optimizer_switch;
|
||||
set optimizer_switch =
|
||||
if(@innodb_test_dont_touch_optimizer_switch,
|
||||
@@optimizer_switch,
|
||||
'mrr=on,mrr_sort_keys=on,index_condition_pushdown=on');
|
||||
drop table if exists t1,t2,t3,t4;
|
||||
drop database if exists mysqltest;
|
||||
create table t1 (id int unsigned not null auto_increment, code tinyint unsigned not null, name char(20) not null, primary key (id), key (code), unique (name)) engine=innodb;
|
||||
|
@ -3303,3 +3308,4 @@ Variable_name Value
|
|||
Handler_update 1
|
||||
Variable_name Value
|
||||
Handler_delete 1
|
||||
set optimizer_switch=@innodb_test_tmp;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
set @save_storage_engine= @@storage_engine;
|
||||
set storage_engine=InnoDB;
|
||||
set @innodb_icp_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
#
|
||||
# Bug#36981 - "innodb crash when selecting for update"
|
||||
#
|
||||
|
@ -200,4 +202,5 @@ COUNT(*)
|
|||
12
|
||||
DROP PROCEDURE insert_data;
|
||||
DROP TABLE t1, t2, t3;
|
||||
set optimizer_switch=@innodb_icp_tmp;
|
||||
set storage_engine= @save_storage_engine;
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
drop table if exists t1,t2,t3,t4;
|
||||
set @save_storage_engine= @@storage_engine;
|
||||
set storage_engine=InnoDB;
|
||||
set @innodb_mrr_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
create table t1(a int);
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
|
@ -764,4 +766,5 @@ t1 AS alias3 FORCE KEY (f2) ON alias3.f2 = alias2.f2 AND alias3.f4 = alias2.f3
|
|||
count(*)
|
||||
361
|
||||
set join_cache_level=@_save_join_cache_level;
|
||||
set optimizer_switch= @innodb_mrr_tmp;
|
||||
drop table t1;
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
drop table if exists t0,t1,t2,t3;
|
||||
set @innodb_mrr_cpk_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
set @save_join_cache_level=@@join_cache_level;
|
||||
set join_cache_level=6;
|
||||
set @save_storage_engine=@@storage_engine;
|
||||
|
@ -145,4 +147,5 @@ set optimizer_switch='index_condition_pushdown=on';
|
|||
drop table t1,t2;
|
||||
set @@join_cache_level= @save_join_cache_level;
|
||||
set storage_engine=@save_storage_engine;
|
||||
set optimizer_switch=@innodb_mrr_cpk_tmp;
|
||||
drop table t0;
|
||||
|
|
3316
mysql-test/r/innodb_no_mrricp.result
Normal file
3316
mysql-test/r/innodb_no_mrricp.result
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1264,7 +1264,7 @@ SHOW STATUS LIKE 'Handler_read_%';
|
|||
Variable_name Value
|
||||
Handler_read_first 0
|
||||
Handler_read_key 1
|
||||
Handler_read_next 0
|
||||
Handler_read_next 2
|
||||
Handler_read_prev 0
|
||||
Handler_read_rnd 0
|
||||
Handler_read_rnd_next 1
|
||||
|
|
|
@ -4,6 +4,8 @@ set @save_optimizer_switch=@@optimizer_switch;
|
|||
set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on';
|
||||
set @@optimizer_switch='semijoin_with_cache=on';
|
||||
set @@optimizer_switch='outer_join_with_cache=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
set @local_join_cache_test_optimizer_switch_default=@@optimizer_switch;
|
||||
set names utf8;
|
||||
CREATE DATABASE world;
|
||||
use world;
|
||||
|
@ -4834,7 +4836,7 @@ SELECT * FROM t1,t2
|
|||
WHERE t1.f1 = t2.f4 AND (t1.f3 = 1 AND t2.f3 = 4 OR t1.f3 = 2 AND t2.f3 = 6);
|
||||
f1 f3 f3 f2 f4
|
||||
SET SESSION join_cache_level = DEFAULT;
|
||||
SET SESSION optimizer_switch = DEFAULT;
|
||||
SET SESSION optimizer_switch = @local_join_cache_test_optimizer_switch_default;
|
||||
DROP TABLE t1,t2;
|
||||
CREATE TABLE t1 (f1 int, f2 varchar(10), KEY (f1), KEY (f2)) ;
|
||||
INSERT INTO t1 VALUES
|
||||
|
@ -4856,7 +4858,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
SELECT * FROM t1,t2
|
||||
WHERE t2.f3 = t1.f2 AND t1.f1 IN (9, 0 ,100) ORDER BY t1.f2 LIMIT 1;
|
||||
f1 f2 f3
|
||||
SET SESSION optimizer_switch = DEFAULT;
|
||||
SET SESSION optimizer_switch = @local_join_cache_test_optimizer_switch_default;
|
||||
SET SESSION optimizer_switch = 'index_condition_pushdown=on';
|
||||
EXPLAIN SELECT * FROM t1,t2
|
||||
WHERE t2.f3 = t1.f2 AND t1.f1 IN (9, 0 ,100) ORDER BY t1.f2 LIMIT 1;
|
||||
|
@ -4866,7 +4868,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
SELECT * FROM t1,t2
|
||||
WHERE t2.f3 = t1.f2 AND t1.f1 IN (9, 0 ,100) ORDER BY t1.f2 LIMIT 1;
|
||||
f1 f2 f3
|
||||
SET SESSION optimizer_switch = DEFAULT;
|
||||
SET SESSION optimizer_switch = @local_join_cache_test_optimizer_switch_default;
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# Bug #694443: hash join using IS NULL the an equi-join condition
|
||||
|
@ -5000,5 +5002,4 @@ a
|
|||
0
|
||||
SET SESSION join_cache_level = DEFAULT;
|
||||
DROP TABLE t1, t2;
|
||||
SET SESSION optimizer_switch=default;
|
||||
set @@optimizer_switch=@save_optimizer_switch;
|
||||
|
|
|
@ -1447,12 +1447,12 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t2 ALL NULL NULL NULL NULL X
|
||||
1 SIMPLE t3 ref a a 5 test.t2.b X Using where
|
||||
1 SIMPLE t5 ref a a 5 test.t3.b X
|
||||
1 SIMPLE t4 ref a a 5 test.t3.b X Using index condition
|
||||
1 SIMPLE t4 ref a a 5 test.t3.b X Using where
|
||||
explain select * from (t4 join t6 on t6.a=t4.b) right join t3 on t4.a=t3.b
|
||||
join t2 left join (t5 join t7 on t7.a=t5.b) on t5.a=t2.b where t3.a<=>t2.b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL X
|
||||
1 SIMPLE t3 ref a a 5 test.t2.b X Using index condition
|
||||
1 SIMPLE t3 ref a a 5 test.t2.b X Using where
|
||||
1 SIMPLE t4 ref a a 5 test.t3.b X Using where
|
||||
1 SIMPLE t6 ref a a 5 test.t4.b X
|
||||
1 SIMPLE t5 ref a a 5 test.t2.b X Using where
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
set @save_optimizer_switch_jcl6=@@optimizer_switch;
|
||||
set @@optimizer_switch='semijoin_with_cache=on';
|
||||
set @@optimizer_switch='outer_join_with_cache=on';
|
||||
set @@optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
set join_cache_level=6;
|
||||
show variables like 'join_cache_level';
|
||||
Variable_name Value
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
set @save_optimizer_switch_jcl6=@@optimizer_switch;
|
||||
set @@optimizer_switch='semijoin_with_cache=on';
|
||||
set @@optimizer_switch='outer_join_with_cache=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
set join_cache_level=6;
|
||||
show variables like 'join_cache_level';
|
||||
Variable_name Value
|
||||
|
|
|
@ -628,7 +628,7 @@ select p from t1 where p between 1010 and 1020;
|
|||
p
|
||||
explain select i from t2 where p between 1010 and 1020;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 28 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 28 Using where
|
||||
select i from t2 where p between 1010 and 1020;
|
||||
i
|
||||
1
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
set @save_storage_engine= @@storage_engine;
|
||||
set storage_engine=Maria;
|
||||
set @maria_icp_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
#
|
||||
# Bug#36981 - "innodb crash when selecting for update"
|
||||
#
|
||||
|
@ -201,3 +203,4 @@ COUNT(*)
|
|||
DROP PROCEDURE insert_data;
|
||||
DROP TABLE t1, t2, t3;
|
||||
set storage_engine= @save_storage_engine;
|
||||
set optimizer_switch=@maria_icp_tmp;
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
drop table if exists t1,t2,t3,t4;
|
||||
set @maria_mrr_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
set @mrr_buffer_size_save= @@mrr_buffer_size;
|
||||
set @save_storage_engine= @@storage_engine;
|
||||
set storage_engine=aria;
|
||||
|
@ -426,4 +428,5 @@ alias2.f3 < 0;
|
|||
f2 f3 f4 f5 f2
|
||||
set join_cache_level=@_save_join_cache_level;
|
||||
set join_buffer_size=@_save_join_buffer_size;
|
||||
set optimizer_switch=@maria_mrr_tmp;
|
||||
drop table t1;
|
||||
|
|
|
@ -673,7 +673,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
EXPLAIN SELECT * FROM t1 WHERE fileset_id = 2
|
||||
AND file_code BETWEEN '0000000115' AND '0000000120' LIMIT 1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY,files PRIMARY 35 NULL 5 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY,files PRIMARY 35 NULL 5 Using where
|
||||
EXPLAIN SELECT * FROM t2 WHERE fileset_id = 2
|
||||
AND file_code = '0000000115' LIMIT 1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
|
|
|
@ -1114,11 +1114,11 @@ count(*)
|
|||
29267
|
||||
explain select * from t1 where c between 1 and 2500;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c c 5 NULL # Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c c 5 NULL # Using where
|
||||
update t1 set c=a;
|
||||
explain select * from t1 where c between 1 and 2500;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c c 5 NULL # Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c c 5 NULL # Using where
|
||||
drop table t1,t2;
|
||||
create table t1 (id int primary key auto_increment, fk int, index index_fk (fk)) engine=MyISAM;
|
||||
insert into t1 (id) values (null),(null),(null),(null),(null);
|
||||
|
@ -1559,7 +1559,7 @@ qq
|
|||
*a *a*a *
|
||||
explain select * from t1 where v='a';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v,v_2 # 13 const # Using index condition
|
||||
1 SIMPLE t1 ref v,v_2 # 13 const # Using where
|
||||
select v,count(*) from t1 group by v limit 10;
|
||||
v count(*)
|
||||
a 1
|
||||
|
@ -1735,7 +1735,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t1 ref v v 303 const # Using where; Using index
|
||||
explain select * from t1 where v='a';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v v 303 const # Using index condition
|
||||
1 SIMPLE t1 ref v v 303 const # Using where
|
||||
select v,count(*) from t1 group by v limit 10;
|
||||
v count(*)
|
||||
a 1
|
||||
|
|
891
mysql-test/r/mrr_icp_extra.result
Normal file
891
mysql-test/r/mrr_icp_extra.result
Normal file
|
@ -0,0 +1,891 @@
|
|||
set @mrr_icp_extra_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
SET NAMES latin1;
|
||||
CREATE TABLE t1
|
||||
(s1 char(10) COLLATE latin1_german1_ci,
|
||||
s2 char(10) COLLATE latin1_swedish_ci,
|
||||
KEY(s1),
|
||||
KEY(s2));
|
||||
INSERT INTO t1 VALUES ('a','a');
|
||||
INSERT INTO t1 VALUES ('b','b');
|
||||
INSERT INTO t1 VALUES ('c','c');
|
||||
INSERT INTO t1 VALUES ('d','d');
|
||||
INSERT INTO t1 VALUES ('e','e');
|
||||
INSERT INTO t1 VALUES ('f','f');
|
||||
INSERT INTO t1 VALUES ('g','g');
|
||||
INSERT INTO t1 VALUES ('h','h');
|
||||
INSERT INTO t1 VALUES ('i','i');
|
||||
INSERT INTO t1 VALUES ('j','j');
|
||||
EXPLAIN SELECT * FROM t1 WHERE s1='a';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref s1 s1 11 const 1 Using index condition
|
||||
EXPLAIN SELECT * FROM t1 WHERE s2='a';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref s2 s2 11 const 1 Using index condition
|
||||
EXPLAIN SELECT * FROM t1 WHERE s1='a' COLLATE latin1_german1_ci;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref s1 s1 11 const 1 Using index condition
|
||||
EXPLAIN SELECT * FROM t1 WHERE s2='a' COLLATE latin1_german1_ci;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL s2 NULL NULL NULL 10 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE s1 BETWEEN 'a' AND 'b' COLLATE latin1_german1_ci;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range s1 s1 11 NULL 2 Using index condition; Rowid-ordered scan
|
||||
EXPLAIN SELECT * FROM t1 WHERE s2 BETWEEN 'a' AND 'b' COLLATE latin1_german1_ci;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL s2 NULL NULL NULL 10 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE s1 IN ('a','b' COLLATE latin1_german1_ci);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range s1 s1 11 NULL 2 Using index condition; Rowid-ordered scan
|
||||
EXPLAIN SELECT * FROM t1 WHERE s2 IN ('a','b' COLLATE latin1_german1_ci);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL s2 NULL NULL NULL 10 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE s1 LIKE 'a' COLLATE latin1_german1_ci;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range s1 s1 11 NULL 1 Using index condition; Rowid-ordered scan
|
||||
EXPLAIN SELECT * FROM t1 WHERE s2 LIKE 'a' COLLATE latin1_german1_ci;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL s2 NULL NULL NULL 10 Using where
|
||||
DROP TABLE t1;
|
||||
#
|
||||
#
|
||||
CREATE TABLE t2 (a varchar(32), b int(11), c float, d double,
|
||||
UNIQUE KEY a (a,b,c), KEY b (b), KEY c (c));
|
||||
CREATE TABLE t1 (a varchar(32), b char(3), UNIQUE KEY a (a,b), KEY b (b));
|
||||
CREATE TABLE t3 (a varchar(32), b char(3), UNIQUE KEY a (a,b));
|
||||
INSERT INTO t3 SELECT * FROM t1;
|
||||
EXPLAIN
|
||||
SELECT d FROM t1, t2
|
||||
WHERE t2.b=14 AND t2.a=t1.a AND 5.1<t2.c AND t1.b='DE'
|
||||
ORDER BY t2.c LIMIT 1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
SELECT d FROM t1, t2
|
||||
WHERE t2.b=14 AND t2.a=t1.a AND 5.1<t2.c AND t1.b='DE'
|
||||
ORDER BY t2.c LIMIT 1;
|
||||
d
|
||||
DROP TABLE t1,t2,t3;
|
||||
#
|
||||
#
|
||||
create table t1(a int, b int, index(b));
|
||||
insert into t1 values (2, 1), (1, 1), (4, NULL), (3, NULL), (6, 2), (5, 2);
|
||||
explain select * from t1 where b=1 or b is null order by a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref_or_null b b 5 const 3 Using index condition; Using filesort
|
||||
select * from t1 where b=1 or b is null order by a;
|
||||
a b
|
||||
1 1
|
||||
2 1
|
||||
3 NULL
|
||||
4 NULL
|
||||
explain select * from t1 where b=2 or b is null order by a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref_or_null b b 5 const 4 Using index condition; Using filesort
|
||||
select * from t1 where b=2 or b is null order by a;
|
||||
a b
|
||||
3 NULL
|
||||
4 NULL
|
||||
5 2
|
||||
6 2
|
||||
drop table t1;
|
||||
#
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
FieldKey varchar(36) NOT NULL default '',
|
||||
LongVal bigint(20) default NULL,
|
||||
StringVal mediumtext,
|
||||
KEY FieldKey (FieldKey),
|
||||
KEY LongField (FieldKey,LongVal),
|
||||
KEY StringField (FieldKey,StringVal(32))
|
||||
);
|
||||
INSERT INTO t1 VALUES ('0',3,'0'),('0',2,'1'),('0',1,'2'),('1',2,'1'),('1',1,'3'), ('1',0,'2'),('2',3,'0'),('2',2,'1'),('2',1,'2'),('2',3,'0'),('2',2,'1'),('2',1,'2'),('3',2,'1'),('3',1,'2'),('3','3','3');
|
||||
EXPLAIN SELECT * FROM t1 IGNORE INDEX (LongField, StringField) WHERE FieldKey > '2' ORDER BY LongVal;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range FieldKey FieldKey 38 NULL 4 Using index condition; Rowid-ordered scan; Using filesort
|
||||
EXPLAIN SELECT * FROM t1 IGNORE INDEX (FieldKey, LongField) WHERE FieldKey > '2' ORDER BY LongVal;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range StringField StringField 38 NULL 4 Using where; Using filesort
|
||||
SELECT * FROM t1 WHERE FieldKey > '2' ORDER BY LongVal;
|
||||
FieldKey LongVal StringVal
|
||||
3 1 2
|
||||
3 2 1
|
||||
3 3 3
|
||||
DROP TABLE t1;
|
||||
#
|
||||
#
|
||||
CREATE TABLE t1 (a int not null, b int, c int, key(b), key(c), key(a,b), key(c,a));
|
||||
INSERT into t1 values (0, null, 0), (0, null, 1), (0, null, 2), (0, null,3), (1,1,4);
|
||||
create table t2 (a int not null, b int, c int, key(b), key(c), key(a));
|
||||
INSERT into t2 values (1,1,1), (2,2,2);
|
||||
optimize table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 optimize status OK
|
||||
explain select * from t1 force index (a) where a=0 or a=2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range a a 4 NULL 4 Using index condition; Rowid-ordered scan
|
||||
select * from t1 force index (a) where a=0 or a=2;
|
||||
a b c
|
||||
0 NULL 0
|
||||
0 NULL 1
|
||||
0 NULL 2
|
||||
0 NULL 3
|
||||
drop table t1;
|
||||
#
|
||||
#
|
||||
create table t1
|
||||
(
|
||||
pk1 int not null,
|
||||
pk2 int not null,
|
||||
key1 int not null,
|
||||
key2 int not null,
|
||||
pktail1ok int not null,
|
||||
pktail2ok int not null,
|
||||
pktail3bad int not null,
|
||||
pktail4bad int not null,
|
||||
pktail5bad int not null,
|
||||
pk2copy int not null,
|
||||
badkey int not null,
|
||||
filler1 char (200),
|
||||
filler2 char (200),
|
||||
key (key1),
|
||||
key (key2),
|
||||
/* keys with tails from CPK members */
|
||||
key (pktail1ok, pk1),
|
||||
key (pktail2ok, pk1, pk2),
|
||||
key (pktail3bad, pk2, pk1),
|
||||
key (pktail4bad, pk1, pk2copy),
|
||||
key (pktail5bad, pk1, pk2, pk2copy),
|
||||
primary key (pk1, pk2)
|
||||
);
|
||||
explain select * from t1 where pk1 = 1 and pk2 < 80 and key1=0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY,key1 PRIMARY 8 NULL 7 Using index condition; Using where; Rowid-ordered scan
|
||||
select * from t1 where pk1 = 1 and pk2 < 80 and key1=0;
|
||||
pk1 pk2 key1 key2 pktail1ok pktail2ok pktail3bad pktail4bad pktail5bad pk2copy badkey filler1 filler2
|
||||
1 19 0 0 0 0 0 0 0 19 0 filler-data-19 filler2
|
||||
1 18 0 0 0 0 0 0 0 18 0 filler-data-18 filler2
|
||||
1 17 0 0 0 0 0 0 0 17 0 filler-data-17 filler2
|
||||
1 16 0 0 0 0 0 0 0 16 0 filler-data-16 filler2
|
||||
1 15 0 0 0 0 0 0 0 15 0 filler-data-15 filler2
|
||||
1 14 0 0 0 0 0 0 0 14 0 filler-data-14 filler2
|
||||
1 13 0 0 0 0 0 0 0 13 0 filler-data-13 filler2
|
||||
1 12 0 0 0 0 0 0 0 12 0 filler-data-12 filler2
|
||||
1 11 0 0 0 0 0 0 0 11 0 filler-data-11 filler2
|
||||
1 10 0 0 0 0 0 0 0 10 0 filler-data-10 filler2
|
||||
drop table t1;
|
||||
#
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
f1 int,
|
||||
f4 varchar(32),
|
||||
f5 int,
|
||||
PRIMARY KEY (f1),
|
||||
KEY (f4)
|
||||
);
|
||||
INSERT INTO t1 VALUES
|
||||
(5,'H',1), (9,'g',0), (527,'i',0), (528,'y',1), (529,'S',6),
|
||||
(530,'m',7), (531,'b',2), (532,'N',1), (533,'V',NULL), (534,'l',1),
|
||||
(535,'M',0), (536,'w',1), (537,'j',5), (538,'l',0), (539,'n',2),
|
||||
(540,'m',2), (541,'r',2), (542,'l',2), (543,'h',3),(544,'o',0),
|
||||
(956,'h',0), (957,'g',0), (958,'W',5), (959,'s',3), (960,'w',0),
|
||||
(961,'q',0), (962,'e',NULL), (963,'u',7), (964,'q',1), (965,'N',NULL),
|
||||
(966,'e',0), (967,'t',3), (968,'e',6), (969,'f',NULL), (970,'j',0),
|
||||
(971,'s',3), (972,'I',0), (973,'h',4), (974,'g',1), (975,'s',0),
|
||||
(976,'r',3), (977,'x',1), (978,'v',8), (979,'j',NULL), (980,'z',7),
|
||||
(981,'t',9), (982,'j',5), (983,'u',NULL), (984,'g',6), (985,'w',1),
|
||||
(986,'h',1), (987,'v',0), (988,'v',0), (989,'c',2), (990,'b',7),
|
||||
(991,'z',0), (992,'M',1), (993,'u',2), (994,'r',2), (995,'b',4),
|
||||
(996,'A',2), (997,'u',0), (998,'a',0), (999,'j',2), (1,'I',2);
|
||||
EXPLAIN
|
||||
SELECT * FROM t1
|
||||
WHERE (f1 < 535 OR f1 > 985) AND ( f4='r' OR f4 LIKE 'a%' ) ;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY,f4 f4 35 NULL 5 Using index condition; Using where; Rowid-ordered scan
|
||||
SELECT * FROM t1
|
||||
WHERE (f1 < 535 OR f1 > 985) AND ( f4='r' OR f4 LIKE 'a%' ) ;
|
||||
f1 f4 f5
|
||||
994 r 2
|
||||
996 A 2
|
||||
998 a 0
|
||||
drop table t1;
|
||||
#
|
||||
#
|
||||
drop table if exists t1,t2,t3;
|
||||
--- Testing varchar ---
|
||||
--- Testing varchar ---
|
||||
create table t1 (v varchar(10), c char(10), t text);
|
||||
insert into t1 values('+ ', '+ ', '+ ');
|
||||
set @a=repeat(' ',20);
|
||||
insert into t1 values (concat('+',@a),concat('+',@a),concat('+',@a));
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'v' at row 1
|
||||
select concat('*',v,'*',c,'*',t,'*') from t1;
|
||||
concat('*',v,'*',c,'*',t,'*')
|
||||
*+ *+*+ *
|
||||
*+ *+*+ *
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`v` varchar(10) DEFAULT NULL,
|
||||
`c` char(10) DEFAULT NULL,
|
||||
`t` text
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
create table t2 like t1;
|
||||
show create table t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`v` varchar(10) DEFAULT NULL,
|
||||
`c` char(10) DEFAULT NULL,
|
||||
`t` text
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
create table t3 select * from t1;
|
||||
show create table t3;
|
||||
Table Create Table
|
||||
t3 CREATE TABLE `t3` (
|
||||
`v` varchar(10) DEFAULT NULL,
|
||||
`c` char(10) DEFAULT NULL,
|
||||
`t` text
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
alter table t1 modify c varchar(10);
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`v` varchar(10) DEFAULT NULL,
|
||||
`c` varchar(10) DEFAULT NULL,
|
||||
`t` text
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
alter table t1 modify v char(10);
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`v` char(10) DEFAULT NULL,
|
||||
`c` varchar(10) DEFAULT NULL,
|
||||
`t` text
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
alter table t1 modify t varchar(10);
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 't' at row 2
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`v` char(10) DEFAULT NULL,
|
||||
`c` varchar(10) DEFAULT NULL,
|
||||
`t` varchar(10) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
select concat('*',v,'*',c,'*',t,'*') from t1;
|
||||
concat('*',v,'*',c,'*',t,'*')
|
||||
*+*+*+ *
|
||||
*+*+*+ *
|
||||
drop table t1,t2,t3;
|
||||
create table t1 (v varchar(10), c char(10), t text, key(v), key(c), key(t(10)));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`v` varchar(10) DEFAULT NULL,
|
||||
`c` char(10) DEFAULT NULL,
|
||||
`t` text,
|
||||
KEY `v` (`v`),
|
||||
KEY `c` (`c`),
|
||||
KEY `t` (`t`(10))
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
270
|
||||
insert into t1 values(concat('a',char(1)),concat('a',char(1)),concat('a',char(1)));
|
||||
select count(*) from t1 where v='a';
|
||||
count(*)
|
||||
10
|
||||
select count(*) from t1 where c='a';
|
||||
count(*)
|
||||
10
|
||||
select count(*) from t1 where t='a';
|
||||
count(*)
|
||||
10
|
||||
select count(*) from t1 where v='a ';
|
||||
count(*)
|
||||
10
|
||||
select count(*) from t1 where c='a ';
|
||||
count(*)
|
||||
10
|
||||
select count(*) from t1 where t='a ';
|
||||
count(*)
|
||||
10
|
||||
select count(*) from t1 where v between 'a' and 'a ';
|
||||
count(*)
|
||||
10
|
||||
select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
|
||||
count(*)
|
||||
10
|
||||
select count(*) from t1 where v like 'a%';
|
||||
count(*)
|
||||
11
|
||||
select count(*) from t1 where c like 'a%';
|
||||
count(*)
|
||||
11
|
||||
select count(*) from t1 where t like 'a%';
|
||||
count(*)
|
||||
11
|
||||
select count(*) from t1 where v like 'a %';
|
||||
count(*)
|
||||
9
|
||||
explain select count(*) from t1 where v='a ';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v v 13 const # Using where; Using index
|
||||
explain select count(*) from t1 where c='a ';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref c c 11 const # Using where; Using index
|
||||
explain select count(*) from t1 where t='a ';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref t t 13 const # Using where
|
||||
explain select count(*) from t1 where v like 'a%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range v v 13 NULL # Using where; Using index
|
||||
explain select count(*) from t1 where v between 'a' and 'a ';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v v 13 const # Using where; Using index
|
||||
explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v v 13 const # Using where; Using index
|
||||
alter table t1 add unique(v);
|
||||
ERROR 23000: Duplicate entry '{ ' for key 'v_2'
|
||||
alter table t1 add key(v);
|
||||
select concat('*',v,'*',c,'*',t,'*') as qq from t1 where v='a';
|
||||
qq
|
||||
*a*a*a*
|
||||
*a *a*a *
|
||||
*a *a*a *
|
||||
*a *a*a *
|
||||
*a *a*a *
|
||||
*a *a*a *
|
||||
*a *a*a *
|
||||
*a *a*a *
|
||||
*a *a*a *
|
||||
*a *a*a *
|
||||
explain select * from t1 where v='a';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v,v_2 # 13 const # Using index condition
|
||||
select v,count(*) from t1 group by v limit 10;
|
||||
v count(*)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select v,count(t) from t1 group by v limit 10;
|
||||
v count(t)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select v,count(c) from t1 group by v limit 10;
|
||||
v count(c)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select sql_big_result v,count(t) from t1 group by v limit 10;
|
||||
v count(t)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select sql_big_result v,count(c) from t1 group by v limit 10;
|
||||
v count(c)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select c,count(*) from t1 group by c limit 10;
|
||||
c count(*)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select c,count(t) from t1 group by c limit 10;
|
||||
c count(t)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select sql_big_result c,count(t) from t1 group by c limit 10;
|
||||
c count(t)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select t,count(*) from t1 group by t limit 10;
|
||||
t count(*)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select t,count(t) from t1 group by t limit 10;
|
||||
t count(t)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select sql_big_result t,count(t) from t1 group by t limit 10;
|
||||
t count(t)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
alter table t1 modify v varchar(300), drop key v, drop key v_2, add key v (v);
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`v` varchar(300) DEFAULT NULL,
|
||||
`c` char(10) DEFAULT NULL,
|
||||
`t` text,
|
||||
KEY `c` (`c`),
|
||||
KEY `t` (`t`(10)),
|
||||
KEY `v` (`v`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
select count(*) from t1 where v='a';
|
||||
count(*)
|
||||
10
|
||||
select count(*) from t1 where v='a ';
|
||||
count(*)
|
||||
10
|
||||
select count(*) from t1 where v between 'a' and 'a ';
|
||||
count(*)
|
||||
10
|
||||
select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
|
||||
count(*)
|
||||
10
|
||||
select count(*) from t1 where v like 'a%';
|
||||
count(*)
|
||||
11
|
||||
select count(*) from t1 where v like 'a %';
|
||||
count(*)
|
||||
9
|
||||
explain select count(*) from t1 where v='a ';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v v 303 const # Using where; Using index
|
||||
explain select count(*) from t1 where v like 'a%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range v v 303 NULL # Using where; Using index
|
||||
explain select count(*) from t1 where v between 'a' and 'a ';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v v 303 const # Using where; Using index
|
||||
explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v v 303 const # Using where; Using index
|
||||
explain select * from t1 where v='a';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v v 303 const # Using index condition
|
||||
select v,count(*) from t1 group by v limit 10;
|
||||
v count(*)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select v,count(t) from t1 group by v limit 10;
|
||||
v count(t)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select sql_big_result v,count(t) from t1 group by v limit 10;
|
||||
v count(t)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
alter table t1 drop key v, add key v (v(30));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`v` varchar(300) DEFAULT NULL,
|
||||
`c` char(10) DEFAULT NULL,
|
||||
`t` text,
|
||||
KEY `c` (`c`),
|
||||
KEY `t` (`t`(10)),
|
||||
KEY `v` (`v`(30))
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
select count(*) from t1 where v='a';
|
||||
count(*)
|
||||
10
|
||||
select count(*) from t1 where v='a ';
|
||||
count(*)
|
||||
10
|
||||
select count(*) from t1 where v between 'a' and 'a ';
|
||||
count(*)
|
||||
10
|
||||
select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
|
||||
count(*)
|
||||
10
|
||||
select count(*) from t1 where v like 'a%';
|
||||
count(*)
|
||||
11
|
||||
select count(*) from t1 where v like 'a %';
|
||||
count(*)
|
||||
9
|
||||
explain select count(*) from t1 where v='a ';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v v 33 const # Using where
|
||||
explain select count(*) from t1 where v like 'a%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range v v 33 NULL # Using where
|
||||
explain select count(*) from t1 where v between 'a' and 'a ';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v v 33 const # Using where
|
||||
explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' and 'b\n';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v v 33 const # Using where
|
||||
explain select * from t1 where v='a';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v v 33 const # Using where
|
||||
select v,count(*) from t1 group by v limit 10;
|
||||
v count(*)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select v,count(t) from t1 group by v limit 10;
|
||||
v count(t)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select sql_big_result v,count(t) from t1 group by v limit 10;
|
||||
v count(t)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
alter table t1 modify v varchar(600), drop key v, add key v (v);
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`v` varchar(600) DEFAULT NULL,
|
||||
`c` char(10) DEFAULT NULL,
|
||||
`t` text,
|
||||
KEY `c` (`c`),
|
||||
KEY `t` (`t`(10)),
|
||||
KEY `v` (`v`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
select v,count(*) from t1 group by v limit 10;
|
||||
v count(*)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select v,count(t) from t1 group by v limit 10;
|
||||
v count(t)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
select sql_big_result v,count(t) from t1 group by v limit 10;
|
||||
v count(t)
|
||||
a 1
|
||||
a 10
|
||||
b 10
|
||||
c 10
|
||||
d 10
|
||||
e 10
|
||||
f 10
|
||||
g 10
|
||||
h 10
|
||||
i 10
|
||||
drop table t1;
|
||||
create table t1 (a char(10), unique (a));
|
||||
insert into t1 values ('a ');
|
||||
insert into t1 values ('a ');
|
||||
ERROR 23000: Duplicate entry 'a' for key 'a'
|
||||
alter table t1 modify a varchar(10);
|
||||
insert into t1 values ('a '),('a '),('a '),('a ');
|
||||
ERROR 23000: Duplicate entry 'a ' for key 'a'
|
||||
insert into t1 values ('a ');
|
||||
ERROR 23000: Duplicate entry 'a ' for key 'a'
|
||||
insert into t1 values ('a ');
|
||||
ERROR 23000: Duplicate entry 'a ' for key 'a'
|
||||
insert into t1 values ('a ');
|
||||
ERROR 23000: Duplicate entry 'a ' for key 'a'
|
||||
update t1 set a='a ' where a like 'a%';
|
||||
select concat(a,'.') from t1;
|
||||
concat(a,'.')
|
||||
a .
|
||||
update t1 set a='abc ' where a like 'a ';
|
||||
select concat(a,'.') from t1;
|
||||
concat(a,'.')
|
||||
a .
|
||||
update t1 set a='a ' where a like 'a %';
|
||||
select concat(a,'.') from t1;
|
||||
concat(a,'.')
|
||||
a .
|
||||
update t1 set a='a ' where a like 'a ';
|
||||
select concat(a,'.') from t1;
|
||||
concat(a,'.')
|
||||
a .
|
||||
drop table t1;
|
||||
create table t1 (v varchar(10), c char(10), t text, key(v(5)), key(c(5)), key(t(5)));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`v` varchar(10) DEFAULT NULL,
|
||||
`c` char(10) DEFAULT NULL,
|
||||
`t` text,
|
||||
KEY `v` (`v`(5)),
|
||||
KEY `c` (`c`(5)),
|
||||
KEY `t` (`t`(5))
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 (v char(10) character set utf8);
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`v` char(10) CHARACTER SET utf8 DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 (v varchar(10), c char(10)) row_format=fixed;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`v` varchar(10) DEFAULT NULL,
|
||||
`c` char(10) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED
|
||||
insert into t1 values('a','a'),('a ','a ');
|
||||
select concat('*',v,'*',c,'*') from t1;
|
||||
concat('*',v,'*',c,'*')
|
||||
*a*a*
|
||||
*a *a*
|
||||
drop table t1;
|
||||
create table t1 (v varchar(65530), key(v(10)));
|
||||
insert into t1 values(repeat('a',65530));
|
||||
select length(v) from t1 where v=repeat('a',65530);
|
||||
length(v)
|
||||
65530
|
||||
drop table t1;
|
||||
create table t1(a int, b varchar(12), key ba(b, a));
|
||||
insert into t1 values (1, 'A'), (20, NULL);
|
||||
explain select * from t1 where a=20 and b is null;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref ba ba 20 const,const 1 Using where; Using index
|
||||
select * from t1 where a=20 and b is null;
|
||||
a b
|
||||
20 NULL
|
||||
drop table t1;
|
||||
#
|
||||
#
|
||||
drop database if exists world;
|
||||
CREATE DATABASE world;
|
||||
use world;
|
||||
CREATE TABLE Country (
|
||||
Code char(3) NOT NULL default '',
|
||||
Name char(52) NOT NULL default '',
|
||||
SurfaceArea float(10,2) NOT NULL default '0.00',
|
||||
Population int(11) NOT NULL default '0',
|
||||
Capital int(11) default NULL,
|
||||
PRIMARY KEY (Code),
|
||||
UNIQUE INDEX (Name)
|
||||
);
|
||||
CREATE TABLE City (
|
||||
ID int(11) NOT NULL auto_increment,
|
||||
Name char(35) NOT NULL default '',
|
||||
Country char(3) NOT NULL default '',
|
||||
Population int(11) NOT NULL default '0',
|
||||
PRIMARY KEY (ID),
|
||||
INDEX (Population),
|
||||
INDEX (Country)
|
||||
);
|
||||
CREATE TABLE CountryLanguage (
|
||||
Country char(3) NOT NULL default '',
|
||||
Language char(30) NOT NULL default '',
|
||||
Percentage float(3,1) NOT NULL default '0.0',
|
||||
PRIMARY KEY (Country, Language),
|
||||
INDEX (Percentage)
|
||||
);
|
||||
SELECT * FROM City
|
||||
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
||||
AND (Population > 101000 AND Population < 102000);
|
||||
ID Name Country Population
|
||||
637 Mit Ghamr EGY 101801
|
||||
707 Marbella ESP 101144
|
||||
3792 Tartu EST 101246
|
||||
4032 Cambridge USA 101355
|
||||
explain
|
||||
SELECT * FROM City
|
||||
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
||||
AND (Population > 101000 AND Population < 102000);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population,Country Population 4 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||
explain
|
||||
SELECT * FROM City
|
||||
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
||||
(Name BETWEEN 'P' AND 'Pb' AND (Population > 101000 AND Population < 110000));
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City index_merge Population,Country Country,Population 3,4 NULL # Using sort_union(Country,Population); Using where
|
||||
SELECT * FROM City
|
||||
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
||||
(Name BETWEEN 'P' AND 'Pb' AND (Population > 101000 AND Population < 110000));
|
||||
ID Name Country Population
|
||||
65 Abu Dhabi ARE 398695
|
||||
168 Pabna BGD 103277
|
||||
189 Parakou BEN 103577
|
||||
750 Paarl ZAF 105768
|
||||
2865 Pak Pattan PAK 107800
|
||||
SELECT * FROM City
|
||||
WHERE Name LIKE 'M%' AND Population > 7000000;
|
||||
ID Name Country Population
|
||||
1024 Mumbai (Bombay) IND 10500000
|
||||
3580 Moscow RUS 8389200
|
||||
explain
|
||||
SELECT * FROM City
|
||||
WHERE Name LIKE 'M%' AND Population > 7000000;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||
explain
|
||||
SELECT * FROM City
|
||||
WHERE Name BETWEEN 'G' AND 'K' AND Population > 500000 AND Country LIKE 'C%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population,Country # # NULL # Using index condition; Using where; Rowid-ordered scan
|
||||
SELECT * FROM City
|
||||
WHERE Name BETWEEN 'G' AND 'K' AND Population > 500000 AND Country LIKE 'C%';
|
||||
ID Name Country Population
|
||||
1895 Harbin CHN 4289800
|
||||
1904 Jinan CHN 2278100
|
||||
1905 Hangzhou CHN 2190500
|
||||
1914 Guiyang CHN 1465200
|
||||
1916 Hefei CHN 1369100
|
||||
1923 Jilin CHN 1040000
|
||||
1927 Hohhot CHN 916700
|
||||
1928 Handan CHN 840000
|
||||
1937 Huainan CHN 700000
|
||||
1938 Jixi CHN 683885
|
||||
1944 Jinzhou CHN 570000
|
||||
1950 Hegang CHN 520000
|
||||
explain
|
||||
SELECT * FROM City
|
||||
WHERE Name BETWEEN 'G' AND 'J' AND Population > 500000 AND Country LIKE 'C%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population,Country # # NULL # Using index condition; Using where; Rowid-ordered scan
|
||||
SELECT * FROM City
|
||||
WHERE Name BETWEEN 'G' AND 'J' AND Population > 500000 AND Country LIKE 'C%';
|
||||
ID Name Country Population
|
||||
1895 Harbin CHN 4289800
|
||||
1905 Hangzhou CHN 2190500
|
||||
1914 Guiyang CHN 1465200
|
||||
1916 Hefei CHN 1369100
|
||||
1927 Hohhot CHN 916700
|
||||
1928 Handan CHN 840000
|
||||
1937 Huainan CHN 700000
|
||||
1950 Hegang CHN 520000
|
||||
drop database world;
|
||||
use test;
|
||||
set @mrr_icp_extra_tmp=@@optimizer_switch;
|
|
@ -368,7 +368,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t1 ALL a NULL NULL NULL 5 Using where
|
||||
explain select * from t1 force index (a) where a=0 or a=2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range a a 4 NULL 4 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range a a 4 NULL 4 Using where
|
||||
explain select * from t1 where c=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref c,c_2 c 5 const 1
|
||||
|
@ -1230,7 +1230,7 @@ qq
|
|||
*a *a*a *
|
||||
explain select * from t1 where v='a';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v,v_2 # 13 const # Using index condition
|
||||
1 SIMPLE t1 ref v,v_2 # 13 const # Using where
|
||||
select v,count(*) from t1 group by v limit 10;
|
||||
v count(*)
|
||||
a 1
|
||||
|
@ -1406,7 +1406,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t1 ref v v 303 const # Using where; Using index
|
||||
explain select * from t1 where v='a';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v v 303 const # Using index condition
|
||||
1 SIMPLE t1 ref v v 303 const # Using where
|
||||
select v,count(*) from t1 group by v limit 10;
|
||||
v count(*)
|
||||
a 1
|
||||
|
|
|
@ -198,4 +198,7 @@ COUNT(*)
|
|||
12
|
||||
DROP PROCEDURE insert_data;
|
||||
DROP TABLE t1, t2, t3;
|
||||
set @myisam_icp_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
drop table if exists t0, t1, t1i, t1m;
|
||||
set optimizer_switch=@myisam_icp_tmp;
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
drop table if exists t0, t1, t2, t3;
|
||||
set @myisam_mrr_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
set @mrr_buffer_size_save= @@mrr_buffer_size;
|
||||
set mrr_buffer_size=79;
|
||||
Warnings:
|
||||
|
@ -507,4 +509,5 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE table3 ref PRIMARY,col_varchar_key col_varchar_key 3 test.table2.col_varchar_key 3 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||
set join_cache_level= @save_join_cache_level;
|
||||
set join_buffer_size= @save_join_buffer_size;
|
||||
set optimizer_switch= @myisam_mrr_tmp;
|
||||
drop table t1;
|
||||
|
|
|
@ -148,10 +148,10 @@ insert into t1 values
|
|||
(7,7), (8,8), (9,9), (10,10), (11,11), (12,12);
|
||||
explain select * from t1 where a between 2 and 3;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range idx idx 4 NULL 2 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range idx idx 4 NULL 2 Using where
|
||||
explain select * from t1 where a between 2 and 3 or b is null;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range idx idx 4 NULL 2 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range idx idx 4 NULL 2 Using where
|
||||
drop table t1;
|
||||
select cast(NULL as signed);
|
||||
cast(NULL as signed)
|
||||
|
|
|
@ -258,7 +258,7 @@ INSERT INTO t1 VALUES (1,NULL),(2,NULL),(3,1),(4,2),(5,NULL),(6,NULL),(7,3),(8,4
|
|||
INSERT INTO t2 VALUES (1,NULL),(2,NULL),(3,1),(4,2),(5,NULL),(6,NULL),(7,3),(8,4),(9,NULL),(10,NULL);
|
||||
explain select id from t1 where uniq_id is null;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref idx1 idx1 5 const 5 Using index condition
|
||||
1 SIMPLE t1 ref idx1 idx1 5 const 5 Using where
|
||||
explain select id from t1 where uniq_id =1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 const idx1 idx1 5 const 1
|
||||
|
|
|
@ -4,19 +4,19 @@
|
|||
#
|
||||
select @@optimizer_switch;
|
||||
@@optimizer_switch
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
set optimizer_switch='index_merge=off,index_merge_union=off';
|
||||
select @@optimizer_switch;
|
||||
@@optimizer_switch
|
||||
index_merge=off,index_merge_union=off,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
index_merge=off,index_merge_union=off,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
set optimizer_switch='index_merge_union=on';
|
||||
select @@optimizer_switch;
|
||||
@@optimizer_switch
|
||||
index_merge=off,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
index_merge=off,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
set optimizer_switch='default,index_merge_sort_union=off';
|
||||
select @@optimizer_switch;
|
||||
@@optimizer_switch
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=off,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=off,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
set optimizer_switch=4;
|
||||
ERROR 42000: Variable 'optimizer_switch' can't be set to the value of '4'
|
||||
set optimizer_switch=NULL;
|
||||
|
@ -43,60 +43,60 @@ set optimizer_switch=default;
|
|||
set optimizer_switch='index_merge=off,index_merge_union=off,default';
|
||||
select @@optimizer_switch;
|
||||
@@optimizer_switch
|
||||
index_merge=off,index_merge_union=off,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
index_merge=off,index_merge_union=off,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
set optimizer_switch=default;
|
||||
select @@global.optimizer_switch;
|
||||
@@global.optimizer_switch
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
set @@global.optimizer_switch=default;
|
||||
select @@global.optimizer_switch;
|
||||
@@global.optimizer_switch
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
#
|
||||
# Check index_merge's @@optimizer_switch flags
|
||||
#
|
||||
select @@optimizer_switch;
|
||||
@@optimizer_switch
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
|
||||
BUG#37120 optimizer_switch allowable values not according to specification
|
||||
|
||||
select @@optimizer_switch;
|
||||
@@optimizer_switch
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
set optimizer_switch='default,materialization=off';
|
||||
select @@optimizer_switch;
|
||||
@@optimizer_switch
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
set optimizer_switch='default,semijoin=off';
|
||||
select @@optimizer_switch;
|
||||
@@optimizer_switch
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
set optimizer_switch='default,loosescan=off';
|
||||
select @@optimizer_switch;
|
||||
@@optimizer_switch
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
set optimizer_switch='default,semijoin=off,materialization=off';
|
||||
select @@optimizer_switch;
|
||||
@@optimizer_switch
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
set optimizer_switch='default,materialization=off,semijoin=off';
|
||||
select @@optimizer_switch;
|
||||
@@optimizer_switch
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
set optimizer_switch='default,semijoin=off,materialization=off,loosescan=off';
|
||||
select @@optimizer_switch;
|
||||
@@optimizer_switch
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
set optimizer_switch='default,semijoin=off,loosescan=off';
|
||||
select @@optimizer_switch;
|
||||
@@optimizer_switch
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
set optimizer_switch='default,materialization=off,loosescan=off';
|
||||
select @@optimizer_switch;
|
||||
@@optimizer_switch
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
set optimizer_switch=default;
|
||||
select @@optimizer_switch;
|
||||
@@optimizer_switch
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=off,mrr_sort_keys=on,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=on,derived_with_keys=on,firstmatch=off,loosescan=off,materialization=off,in_to_exists=on,semijoin=off,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on
|
||||
|
|
|
@ -515,7 +515,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
EXPLAIN SELECT t1.gid, t3.uid from t1, t3 where t1.skr = t3.uid order by t1.gid,t3.skr;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using temporary; Using filesort
|
||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 2 test.t1.skr 1 Using index condition
|
||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 2 test.t1.skr 1 Using where
|
||||
drop table t1,t2,t3;
|
||||
CREATE TABLE t1 (
|
||||
`titre` char(80) NOT NULL default '',
|
||||
|
@ -612,7 +612,7 @@ DS-MRR: use two IGNORE INDEX queries, otherwise we get cost races, because
|
|||
DS-MRR: records_in_range/read_time return the same numbers for all three indexes
|
||||
EXPLAIN SELECT * FROM t1 IGNORE INDEX (LongField, StringField) WHERE FieldKey > '2' ORDER BY LongVal;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range FieldKey FieldKey 38 NULL 4 Using index condition; Rowid-ordered scan; Using filesort
|
||||
1 SIMPLE t1 range FieldKey FieldKey 38 NULL 4 Using where; Using filesort
|
||||
EXPLAIN SELECT * FROM t1 IGNORE INDEX (FieldKey, LongField) WHERE FieldKey > '2' ORDER BY LongVal;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range StringField StringField 38 NULL 4 Using where; Using filesort
|
||||
|
@ -644,7 +644,7 @@ create table t1(a int, b int, index(b));
|
|||
insert into t1 values (2, 1), (1, 1), (4, NULL), (3, NULL), (6, 2), (5, 2);
|
||||
explain select * from t1 where b=1 or b is null order by a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref_or_null b b 5 const 3 Using index condition; Using filesort
|
||||
1 SIMPLE t1 ref_or_null b b 5 const 3 Using where; Using filesort
|
||||
select * from t1 where b=1 or b is null order by a;
|
||||
a b
|
||||
1 1
|
||||
|
@ -653,7 +653,7 @@ a b
|
|||
4 NULL
|
||||
explain select * from t1 where b=2 or b is null order by a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref_or_null b b 5 const 4 Using index condition; Using filesort
|
||||
1 SIMPLE t1 ref_or_null b b 5 const 4 Using where; Using filesort
|
||||
select * from t1 where b=2 or b is null order by a;
|
||||
a b
|
||||
3 NULL
|
||||
|
@ -1113,7 +1113,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t2 index k2 k3 5 NULL 73 Using where
|
||||
EXPLAIN SELECT id,c3 FROM t2 WHERE c2 BETWEEN 20 AND 30 ORDER BY c3 LIMIT 4000;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range k2 k2 5 NULL 386 Using index condition; Rowid-ordered scan; Using filesort
|
||||
1 SIMPLE t2 range k2 k2 5 NULL 386 Using where; Using filesort
|
||||
SELECT id,c3 FROM t2 WHERE c2=11 ORDER BY c3 LIMIT 20;
|
||||
id c3
|
||||
6 14
|
||||
|
@ -1490,8 +1490,8 @@ SELECT d FROM t1, t2
|
|||
WHERE t2.b=14 AND t2.a=t1.a AND 5.1<t2.c AND t1.b='DE'
|
||||
ORDER BY t2.c LIMIT 1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref a,b b 4 const 4 Using index condition; Using where; Using temporary; Using filesort
|
||||
1 SIMPLE t2 ref a,b,c a 40 test.t1.a,const 11 Using index condition
|
||||
1 SIMPLE t1 ref a,b b 4 const 4 Using where; Using temporary; Using filesort
|
||||
1 SIMPLE t2 ref a,b,c a 40 test.t1.a,const 11 Using where
|
||||
SELECT d FROM t1, t2
|
||||
WHERE t2.b=14 AND t2.a=t1.a AND 5.1<t2.c AND t1.b='DE'
|
||||
ORDER BY t2.c LIMIT 1;
|
||||
|
@ -1626,19 +1626,19 @@ INSERT INTO t2 SELECT a+4, b FROM t2;
|
|||
EXPLAIN
|
||||
SELECT * FROM t1 FORCE INDEX FOR ORDER BY (a), t2 WHERE t1.a < 2 ORDER BY t1.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range a a 5 NULL 2 Using index condition; Rowid-ordered scan; Using temporary; Using filesort
|
||||
1 SIMPLE t1 range a a 5 NULL 2 Using where; Using temporary; Using filesort
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
|
||||
# should have "using filesort"
|
||||
EXPLAIN
|
||||
SELECT * FROM t1 USE INDEX FOR ORDER BY (a), t2 WHERE t1.a < 2 ORDER BY t1.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range a a 5 NULL 2 Using index condition; Rowid-ordered scan; Using temporary; Using filesort
|
||||
1 SIMPLE t1 range a a 5 NULL 2 Using where; Using temporary; Using filesort
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
|
||||
# should have "using filesort"
|
||||
EXPLAIN
|
||||
SELECT * FROM t1 FORCE INDEX FOR JOIN (a), t2 WHERE t1.a < 2 ORDER BY t1.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range a a 5 NULL 2 Using index condition; Rowid-ordered scan; Using temporary; Using filesort
|
||||
1 SIMPLE t1 range a a 5 NULL 2 Using where; Using temporary; Using filesort
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
|
|
|
@ -465,9 +465,9 @@ def key 253 64 7 Y 0 31 8
|
|||
def key_len 253 4096 1 Y 0 31 8
|
||||
def ref 253 2048 0 Y 0 31 8
|
||||
def rows 8 10 1 Y 32928 0 63
|
||||
def Extra 253 255 57 N 1 31 8
|
||||
def Extra 253 255 27 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 Using index condition; Rowid-ordered scan; Using filesort
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 Using where; Using filesort
|
||||
drop table if exists t2;
|
||||
create table t2 (id smallint, name varchar(20)) ;
|
||||
prepare stmt1 from ' insert into t2 values(?, ?) ' ;
|
||||
|
|
|
@ -1509,8 +1509,8 @@ prepare stmt1 from 'insert into t1 values(?,?),(?,?)';
|
|||
execute stmt1 using @arg00, @arg01, @arg02, @arg03 ;
|
||||
select a,b from t1 where a in (@arg00,@arg02) ;
|
||||
a b
|
||||
82 8-2
|
||||
81 8-1
|
||||
82 8-2
|
||||
set @arg00=9 ;
|
||||
set @arg01='nine' ;
|
||||
prepare stmt1 from 'insert into t1 set a=?, b=? ';
|
||||
|
|
|
@ -221,27 +221,27 @@ update t1 set y=x;
|
|||
explain select * from t1, t1 t2 where t1.y = 8 and t2.x between 7 and t1.y+0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref y y 5 const 1
|
||||
1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Rowid-ordered scan; Using join buffer (flat, BNL join)
|
||||
1 SIMPLE t2 range x x 5 NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
explain select * from t1, t1 t2 where t1.y = 8 and t2.x >= 7 and t2.x <= t1.y+0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref y y 5 const 1
|
||||
1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Rowid-ordered scan; Using join buffer (flat, BNL join)
|
||||
1 SIMPLE t2 range x x 5 NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
explain select * from t1, t1 t2 where t1.y = 2 and t2.x between t1.y-1 and t1.y+1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref y y 5 const 1
|
||||
1 SIMPLE t2 range x x 5 NULL 3 Using index condition; Rowid-ordered scan; Using join buffer (flat, BNL join)
|
||||
1 SIMPLE t2 range x x 5 NULL 3 Using where; Using join buffer (flat, BNL join)
|
||||
explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= t1.y-1 and t2.x <= t1.y+1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref y y 5 const 1
|
||||
1 SIMPLE t2 range x x 5 NULL 3 Using index condition; Rowid-ordered scan; Using join buffer (flat, BNL join)
|
||||
1 SIMPLE t2 range x x 5 NULL 3 Using where; Using join buffer (flat, BNL join)
|
||||
explain select * from t1, t1 t2 where t1.y = 2 and t2.x between 0 and t1.y;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref y y 5 const 1
|
||||
1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Rowid-ordered scan; Using join buffer (flat, BNL join)
|
||||
1 SIMPLE t2 range x x 5 NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
explain select * from t1, t1 t2 where t1.y = 2 and t2.x >= 0 and t2.x <= t1.y;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref y y 5 const 1
|
||||
1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Rowid-ordered scan; Using join buffer (flat, BNL join)
|
||||
1 SIMPLE t2 range x x 5 NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
explain select count(*) from t1 where x in (1);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref x x 5 const 1 Using index
|
||||
|
@ -276,7 +276,7 @@ INSERT INTO t1 VALUES
|
|||
(33,5),(33,5),(33,5),(33,5),(34,5),(35,5);
|
||||
EXPLAIN SELECT * FROM t1 WHERE a IN(1,2) AND b=5;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range a,b a 5 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range a,b a 5 NULL 2 Using where
|
||||
SELECT * FROM t1 WHERE a IN(1,2) AND b=5;
|
||||
a b
|
||||
DROP TABLE t1;
|
||||
|
@ -421,19 +421,19 @@ test.t1 analyze status OK
|
|||
test.t2 analyze status Table is already up to date
|
||||
explain select * from t1, t2 where t1.uid=t2.uid AND t1.uid > 0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range uid_index uid_index 4 NULL 112 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range uid_index uid_index 4 NULL 112 Using where
|
||||
1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 38
|
||||
explain select * from t1, t2 where t1.uid=t2.uid AND t2.uid > 0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range uid_index uid_index 4 NULL 112 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range uid_index uid_index 4 NULL 112 Using where
|
||||
1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 38
|
||||
explain select * from t1, t2 where t1.uid=t2.uid AND t1.uid != 0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range uid_index uid_index 4 NULL 113 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range uid_index uid_index 4 NULL 113 Using where
|
||||
1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 38
|
||||
explain select * from t1, t2 where t1.uid=t2.uid AND t2.uid != 0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range uid_index uid_index 4 NULL 113 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range uid_index uid_index 4 NULL 113 Using where
|
||||
1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 38
|
||||
select * from t1, t2 where t1.uid=t2.uid AND t1.uid > 0;
|
||||
id name uid id name uid
|
||||
|
@ -615,13 +615,13 @@ INSERT INTO t1 (a) VALUES
|
|||
('111'),('222'),('222'),('222'),('222'),('444'),('aaa'),('AAA'),('bbb');
|
||||
explain select * from t1 where a='aaa';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref a a 11 const 2 Using index condition
|
||||
1 SIMPLE t1 ref a a 11 const 2 Using where
|
||||
explain select * from t1 where a=binary 'aaa';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range a a 11 NULL 2 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range a a 11 NULL 2 Using where
|
||||
explain select * from t1 where a='aaa' collate latin1_bin;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range a a 11 NULL 2 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range a a 11 NULL 2 Using where
|
||||
explain select * from t1 where a='aaa' collate latin1_german1_ci;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL a NULL NULL NULL 9 Using where
|
||||
|
@ -704,7 +704,7 @@ WHERE s.oxrootid = 'd8c4177d09f8b11f5.52725521' AND
|
|||
v.oxrootid ='d8c4177d09f8b11f5.52725521' AND
|
||||
s.oxleft > v.oxleft AND s.oxleft < v.oxright;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE v ref OXLEFT,OXRIGHT,OXROOTID OXROOTID 34 const 5 Using index condition
|
||||
1 SIMPLE v ref OXLEFT,OXRIGHT,OXROOTID OXROOTID 34 const 5 Using where
|
||||
1 SIMPLE s ALL OXLEFT NULL NULL NULL 6 Range checked for each record (index map: 0x4)
|
||||
SELECT s.oxid FROM t1 v, t1 s
|
||||
WHERE s.oxrootid = 'd8c4177d09f8b11f5.52725521' AND
|
||||
|
@ -878,10 +878,10 @@ INSERT INTO t1 VALUES
|
|||
(55,'C'), (56,'C'), (57,'C'), (58,'C'), (59,'C'), (60,'C');
|
||||
EXPLAIN SELECT * FROM t1 WHERE status <> 'A' AND status <> 'B';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range status status 23 NULL 11 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range status status 23 NULL 11 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE status NOT IN ('A','B');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range status status 23 NULL 11 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range status status 23 NULL 11 Using where
|
||||
SELECT * FROM t1 WHERE status <> 'A' AND status <> 'B';
|
||||
id status
|
||||
53 C
|
||||
|
@ -910,10 +910,10 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t1 range status status 23 NULL 11 Using where; Using index
|
||||
EXPLAIN SELECT * FROM t1 WHERE status NOT BETWEEN 'A' AND 'B';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range status status 23 NULL 10 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range status status 23 NULL 10 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE status < 'A' OR status > 'B';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range status status 23 NULL 10 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range status status 23 NULL 10 Using where
|
||||
SELECT * FROM t1 WHERE status NOT BETWEEN 'A' AND 'B';
|
||||
id status
|
||||
53 C
|
||||
|
@ -1014,20 +1014,20 @@ create table t2 (a varchar(10), filler char(200), key(a));
|
|||
insert into t2 select * from t1;
|
||||
explain select * from t1 where a between 'a' and 'a ';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range a a 13 NULL # Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range a a 13 NULL # Using where
|
||||
explain select * from t1 where a = 'a' or a='a ';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range a a 13 NULL # Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range a a 13 NULL # Using where
|
||||
explain select * from t2 where a between 'a' and 'a ';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ref a a 13 const # Using index condition
|
||||
1 SIMPLE t2 ref a a 13 const # Using where
|
||||
explain select * from t2 where a = 'a' or a='a ';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ref a a 13 const # Using index condition
|
||||
1 SIMPLE t2 ref a a 13 const # Using where
|
||||
update t1 set a='b' where a<>'a';
|
||||
explain select * from t1 where a not between 'b' and 'b';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range a a 13 NULL # Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range a a 13 NULL # Using where
|
||||
select a, hex(filler) from t1 where a not between 'b' and 'b';
|
||||
a hex(filler)
|
||||
a 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
|
@ -1071,10 +1071,10 @@ id b c
|
|||
0 3 4
|
||||
EXPLAIN SELECT * FROM t1 WHERE b<=3 AND 3<=c;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range idx1,idx2 idx2 4 NULL 3 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range idx1,idx2 idx2 4 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE 3 BETWEEN b AND c;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range idx1,idx2 idx2 4 NULL 3 Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range idx1,idx2 idx2 4 NULL 3 Using where
|
||||
SELECT * FROM t1 WHERE 0 < b OR 0 > c;
|
||||
id b c
|
||||
0 3 4
|
||||
|
@ -1103,7 +1103,7 @@ INSERT INTO t1 VALUES
|
|||
('A2','2005-12-01 08:00:00',1000);
|
||||
EXPLAIN SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-01 24:00:00';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref PRIMARY PRIMARY 20 const 2 Using index condition
|
||||
1 SIMPLE t1 ref PRIMARY PRIMARY 20 const 2 Using where
|
||||
SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-01 24:00:00';
|
||||
item started price
|
||||
Warnings:
|
||||
|
@ -1141,7 +1141,7 @@ INSERT INTO t1 VALUES
|
|||
This must use range access:
|
||||
explain select * from t1 where dateval >= '2007-01-01 00:00:00' and dateval <= '2007-01-02 23:59:59';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range dateval dateval 4 NULL 2 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range dateval dateval 4 NULL 2 Using where
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
a varchar(32), index (a)
|
||||
|
@ -1207,7 +1207,7 @@ Z
|
|||
In following EXPLAIN the access method should be ref, #rows~=500 (and not 2)
|
||||
explain select * from t2 where a=1000 and b<11;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ref a a 5 const 502 Using index condition
|
||||
1 SIMPLE t2 ref a a 5 const 502 Using where
|
||||
drop table t1, t2;
|
||||
CREATE TABLE t1( a INT, b INT, KEY( a, b ) );
|
||||
CREATE TABLE t2( a INT, b INT, KEY( a, b ) );
|
||||
|
@ -1678,7 +1678,7 @@ pk i4
|
|||
EXPLAIN
|
||||
SELECT * FROM t1 WHERE 10 BETWEEN 10 AND i4;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range i4_uq i4_uq 5 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range i4_uq i4_uq 5 NULL 3 Using where
|
||||
SELECT * FROM t1 WHERE 10 BETWEEN 10 AND i4;
|
||||
pk i4
|
||||
1 10
|
||||
|
@ -1687,7 +1687,7 @@ pk i4
|
|||
EXPLAIN
|
||||
SELECT * FROM t1 WHERE 10 BETWEEN i4 AND 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range i4_uq i4_uq 5 NULL 1 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range i4_uq i4_uq 5 NULL 1 Using where
|
||||
SELECT * FROM t1 WHERE 10 BETWEEN i4 AND 10;
|
||||
pk i4
|
||||
1 10
|
||||
|
@ -1721,7 +1721,7 @@ pk i4
|
|||
EXPLAIN
|
||||
SELECT * FROM t1 WHERE i4 BETWEEN 10 AND 99999999999999999;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range i4_uq i4_uq 5 NULL 2 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range i4_uq i4_uq 5 NULL 2 Using where
|
||||
SELECT * FROM t1 WHERE i4 BETWEEN 10 AND 99999999999999999;
|
||||
pk i4
|
||||
1 10
|
||||
|
@ -1736,7 +1736,7 @@ pk i4
|
|||
EXPLAIN
|
||||
SELECT * FROM t1 WHERE i4 BETWEEN 10 AND '20';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range i4_uq i4_uq 5 NULL 1 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range i4_uq i4_uq 5 NULL 1 Using where
|
||||
SELECT * FROM t1 WHERE i4 BETWEEN 10 AND '20';
|
||||
pk i4
|
||||
1 10
|
||||
|
@ -1745,14 +1745,14 @@ EXPLAIN
|
|||
SELECT * FROM t1, t1 as t2 WHERE t2.pk BETWEEN t1.i4 AND t1.i4;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL i4_uq NULL NULL NULL 3
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.i4 1 Using index condition
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.i4 1 Using where
|
||||
SELECT * FROM t1, t1 as t2 WHERE t2.pk BETWEEN t1.i4 AND t1.i4;
|
||||
pk i4 pk i4
|
||||
EXPLAIN
|
||||
SELECT * FROM t1, t1 as t2 WHERE t1.i4 BETWEEN t2.pk AND t2.pk;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL i4_uq NULL NULL NULL 3
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.i4 1 Using index condition
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.i4 1 Using where
|
||||
SELECT * FROM t1, t1 as t2 WHERE t1.i4 BETWEEN t2.pk AND t2.pk;
|
||||
pk i4 pk i4
|
||||
DROP TABLE t1;
|
||||
|
|
1768
mysql-test/r/range_mrr_icp.result
Normal file
1768
mysql-test/r/range_mrr_icp.result
Normal file
File diff suppressed because it is too large
Load diff
|
@ -49,14 +49,14 @@ SELECT * FROM City
|
|||
WHERE (Population >= 100000 OR Name LIKE 'P%') AND Country='CAN' OR
|
||||
(Population < 100000 OR Name Like 'T%') AND Country='ARG';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population,Country,Name Country 3 NULL 104 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range Population,Country,Name Country 3 NULL 104 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE Population < 200000 AND Name LIKE 'P%' AND
|
||||
(Population > 300000 OR Name LIKE 'T%') AND
|
||||
(Population < 100000 OR Name LIKE 'Pa%');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population,Name Name 35 NULL 135 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range Population,Name Name 35 NULL 135 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE Population > 100000 AND Name LIKE 'Aba%' OR
|
||||
|
@ -69,12 +69,12 @@ EXPLAIN
|
|||
SELECT * FROM City
|
||||
WHERE (Population > 101000 AND Population < 115000);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL 459 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Population Population 4 NULL 459 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE (Population > 101000 AND Population < 102000);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL 39 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Population Population 4 NULL 39 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'));
|
||||
|
@ -91,7 +91,7 @@ SELECT * FROM City
|
|||
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
||||
AND (Population > 101000 AND Population < 102000);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population,Country,Name Population 4 NULL 39 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range Population,Country,Name Population 4 NULL 39 Using where
|
||||
SELECT * FROM City USE INDEX ()
|
||||
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
||||
AND (Population > 101000 AND Population < 115000);
|
||||
|
@ -164,44 +164,44 @@ SELECT * FROM City
|
|||
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
||||
AND (Population > 101000 AND Population < 102000);
|
||||
ID Name Country Population
|
||||
637 Mit Ghamr EGY 101801
|
||||
707 Marbella ESP 101144
|
||||
3792 Tartu EST 101246
|
||||
4032 Cambridge USA 101355
|
||||
637 Mit Ghamr EGY 101801
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Name < 'Ac');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 13 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 13 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Name < 'Bb');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 208 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 208 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Country > 'A' AND Country < 'B');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Country Country 3 NULL 104 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Country Country 3 NULL 104 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Name BETWEEN 'P' AND 'Pb');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 39 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 39 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Name BETWEEN 'P' AND 'S');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 221 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 221 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Population > 101000 AND Population < 110000);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL 328 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Population Population 4 NULL 328 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Population > 103000 AND Population < 104000);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL 37 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Population Population 4 NULL 37 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
||||
(Name BETWEEN 'P' AND 'Pb' AND (Population > 101000 AND Population < 110000));
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population,Country,Name Name 35 NULL 52 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range Population,Country,Name Name 35 NULL 52 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
||||
|
@ -234,10 +234,10 @@ WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
|||
(Name BETWEEN 'P' AND 'Pb' AND (Population > 101000 AND Population < 110000));
|
||||
ID Name Country Population
|
||||
65 Abu Dhabi ARE 398695
|
||||
168 Pabna BGD 103277
|
||||
189 Parakou BEN 103577
|
||||
750 Paarl ZAF 105768
|
||||
168 Pabna BGD 103277
|
||||
2865 Pak Pattan PAK 107800
|
||||
189 Parakou BEN 103577
|
||||
SELECT * FROM City USE INDEX ()
|
||||
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
||||
(Name BETWEEN 'P' AND 'S' AND (Population > 103000 AND Population < 104000));
|
||||
|
@ -327,11 +327,11 @@ ID Name Country Population
|
|||
EXPLAIN
|
||||
SELECT * FROM City WHERE (ID < 10) OR (ID BETWEEN 100 AND 110);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 21 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 21 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (ID < 200) OR (ID BETWEEN 100 AND 200);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 201 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 201 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (ID < 600) OR (ID BETWEEN 900 AND 1500);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
|
@ -339,22 +339,22 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
EXPLAIN
|
||||
SELECT * FROM City WHERE Country > 'A' AND Country < 'ARG';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Country Country 3 NULL 19 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Country Country 3 NULL 19 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Name LIKE 'H%' OR Name LIKE 'P%' ;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 222 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 222 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Name LIKE 'Ha%' OR Name LIKE 'Pa%' ;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 72 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 72 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ((ID < 10) AND (Name LIKE 'H%' OR (Country > 'A' AND Country < 'ARG')))
|
||||
OR ((ID BETWEEN 100 AND 110) AND
|
||||
(Name LIKE 'P%' OR (Population > 103000 AND Population < 104000)));
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY,Population,Country,Name PRIMARY 4 NULL 21 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY,Population,Country,Name PRIMARY 4 NULL 21 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ((ID < 800) AND (Name LIKE 'Ha%' OR (Country > 'A' AND Country < 'ARG')))
|
||||
|
@ -576,39 +576,39 @@ ID Name Country Population
|
|||
EXPLAIN
|
||||
SELECT * FROM City WHERE Population > 101000 AND Population < 102000;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL 39 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Population Population 4 NULL 39 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Population > 101000 AND Population < 110000;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL 328 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Population Population 4 NULL 328 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Country < 'C';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Country Country 3 NULL 436 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Country Country 3 NULL 436 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Country < 'AGO';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Country Country 3 NULL 6 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Country Country 3 NULL 6 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Name BETWEEN 'P' AND 'S';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 221 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 221 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Name BETWEEN 'P' AND 'Pb';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 39 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 39 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE ID BETWEEN 3400 AND 3800;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 401 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 401 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE ID BETWEEN 3790 AND 3800;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 11 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 11 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Name LIKE 'P%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 135 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 135 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ((Population > 101000 AND Population < 102000) AND
|
||||
|
@ -679,23 +679,23 @@ CREATE INDEX CountryPopulation ON City(Country,Population);
|
|||
EXPLAIN
|
||||
SELECT * FROM City WHERE Name LIKE 'Pas%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 5 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 5 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Name LIKE 'P%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 135 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 135 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Population > 101000 AND Population < 103000);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL 81 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Population Population 4 NULL 81 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Country='USA';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City ref Country,CountryPopulation Country 3 const 267 Using index condition
|
||||
1 SIMPLE City ref Country,CountryPopulation Country 3 const 267 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Country='FIN';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City ref Country,CountryPopulation Country 3 const 6 Using index condition
|
||||
1 SIMPLE City ref Country,CountryPopulation Country 3 const 6 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ((Population > 101000 AND Population < 103000) OR Name LIKE 'Pas%')
|
||||
|
@ -707,7 +707,7 @@ SELECT * FROM City
|
|||
WHERE ((Population > 101000 AND Population < 103000) OR Name LIKE 'P%')
|
||||
AND Country='FIN';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City ref Population,Country,Name,CountryPopulation Country 3 const 6 Using index condition; Using where
|
||||
1 SIMPLE City ref Population,Country,Name,CountryPopulation Country 3 const 6 Using where
|
||||
SELECT * FROM City
|
||||
WHERE ((Population > 101000 AND Population < 103000) OR Name LIKE 'Pas%')
|
||||
AND Country='USA';
|
||||
|
@ -752,51 +752,51 @@ CREATE INDEX CountryName ON City(Country,Name);
|
|||
EXPLAIN
|
||||
SELECT * FROM City WHERE Country='USA';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City ref Country,CountryPopulation,CountryName Country 3 const 267 Using index condition
|
||||
1 SIMPLE City ref Country,CountryPopulation,CountryName Country 3 const 267 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Country='FIN';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City ref Country,CountryPopulation,CountryName CountryName 3 const 5 Using index condition
|
||||
1 SIMPLE City ref Country,CountryPopulation,CountryName CountryName 3 const 5 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Country='BRA';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City ref Country,CountryPopulation,CountryName CountryName 3 const 221 Using index condition
|
||||
1 SIMPLE City ref Country,CountryPopulation,CountryName CountryName 3 const 221 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE ID BETWEEN 3790 AND 3800;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 11 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 11 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE ID BETWEEN 4025 AND 4035;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 11 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 11 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE ID BETWEEN 4028 AND 4032;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 5 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 5 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE ID BETWEEN 3500 AND 3800;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 301 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 301 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE ID BETWEEN 4000 AND 4300;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 80 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 80 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE ID BETWEEN 250 and 260 ;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 11 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 11 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Population > 101000 AND Population < 102000);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL 39 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Population Population 4 NULL 39 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Population > 101000 AND Population < 103000);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL 81 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Population Population 4 NULL 81 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Name LIKE 'Pa%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 41 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 41 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ((Population > 101000 AND Population < 102000) OR
|
||||
|
@ -817,7 +817,7 @@ WHERE ((Population > 101000 AND Population < 110000) OR
|
|||
ID BETWEEN 3500 AND 3800) AND Country='FIN'
|
||||
AND (Name BETWEEN 'P' AND 'T' OR ID BETWEEN 4000 AND 4300);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City ref PRIMARY,Population,Country,Name,CountryPopulation,CountryName CountryName 3 const 5 Using index condition; Using where
|
||||
1 SIMPLE City ref PRIMARY,Population,Country,Name,CountryPopulation,CountryName CountryName 3 const 5 Using where
|
||||
SELECT * FROM City USE INDEX ()
|
||||
WHERE ((Population > 101000 AND Population < 102000) OR
|
||||
ID BETWEEN 3790 AND 3800) AND Country='USA'
|
||||
|
@ -949,14 +949,14 @@ WHERE ((Population > 101000 AND Population < 11000) OR
|
|||
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
||||
AND (Name LIKE 'P%' OR ID BETWEEN 4000 AND 4300);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY,Population,Country,Name,CountryPopulation,CountryName CountryName 38 NULL 23 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY,Population,Country,Name,CountryPopulation,CountryName CountryName 38 NULL 23 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ((Population > 101000 AND Population < 11000) OR
|
||||
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
||||
AND (Name LIKE 'Pho%' OR ID BETWEEN 4000 AND 4300);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY,Population,Country,Name,CountryPopulation,CountryName Name 35 NULL 1 Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY,Population,Country,Name,CountryPopulation,CountryName Name 35 NULL 1 Using where
|
||||
SELECT * FROM City USE INDEX ()
|
||||
WHERE ((Population > 101000 AND Population < 11000) OR
|
||||
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
||||
|
|
|
@ -50,14 +50,14 @@ SELECT * FROM City
|
|||
WHERE (Population >= 100000 OR Name LIKE 'P%') AND Country='CAN' OR
|
||||
(Population < 100000 OR Name Like 'T%') AND Country='ARG';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population,Country,Name Country 3 NULL 106 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range Population,Country,Name Country 3 NULL 106 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE Population < 200000 AND Name LIKE 'P%' AND
|
||||
(Population > 300000 OR Name LIKE 'T%') AND
|
||||
(Population < 100000 OR Name LIKE 'Pa%');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population,Name Name 35 NULL 235 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range Population,Name Name 35 NULL 235 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE Population > 100000 AND Name LIKE 'Aba%' OR
|
||||
|
@ -70,12 +70,12 @@ EXPLAIN
|
|||
SELECT * FROM City
|
||||
WHERE (Population > 101000 AND Population < 115000);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL 458 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Population Population 4 NULL 458 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE (Population > 101000 AND Population < 102000);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL 38 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Population Population 4 NULL 38 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'));
|
||||
|
@ -92,7 +92,7 @@ SELECT * FROM City
|
|||
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
||||
AND (Population > 101000 AND Population < 102000);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population,Country,Name Population 4 NULL 38 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range Population,Country,Name Population 4 NULL 38 Using where
|
||||
SELECT * FROM City USE INDEX ()
|
||||
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
||||
AND (Population > 101000 AND Population < 115000);
|
||||
|
@ -165,44 +165,44 @@ SELECT * FROM City
|
|||
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
||||
AND (Population > 101000 AND Population < 102000);
|
||||
ID Name Country Population
|
||||
637 Mit Ghamr EGY 101801
|
||||
707 Marbella ESP 101144
|
||||
3792 Tartu EST 101246
|
||||
4032 Cambridge USA 101355
|
||||
637 Mit Ghamr EGY 101801
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Name < 'Ac');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 23 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 23 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Name < 'Bb');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 373 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 373 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Country > 'A' AND Country < 'B');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Country Country 3 NULL 106 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Country Country 3 NULL 106 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Name BETWEEN 'P' AND 'Pb');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 71 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 71 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Name BETWEEN 'P' AND 'S');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 384 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 384 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Population > 101000 AND Population < 110000);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL 327 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Population Population 4 NULL 327 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Population > 103000 AND Population < 104000);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL 36 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Population Population 4 NULL 36 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
||||
(Name BETWEEN 'P' AND 'Pb' AND (Population > 101000 AND Population < 110000));
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population,Country,Name Name 35 NULL 94 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range Population,Country,Name Name 35 NULL 94 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
||||
|
@ -235,10 +235,10 @@ WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
|||
(Name BETWEEN 'P' AND 'Pb' AND (Population > 101000 AND Population < 110000));
|
||||
ID Name Country Population
|
||||
65 Abu Dhabi ARE 398695
|
||||
168 Pabna BGD 103277
|
||||
189 Parakou BEN 103577
|
||||
750 Paarl ZAF 105768
|
||||
168 Pabna BGD 103277
|
||||
2865 Pak Pattan PAK 107800
|
||||
189 Parakou BEN 103577
|
||||
SELECT * FROM City USE INDEX ()
|
||||
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
||||
(Name BETWEEN 'P' AND 'S' AND (Population > 103000 AND Population < 104000));
|
||||
|
@ -340,15 +340,15 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
EXPLAIN
|
||||
SELECT * FROM City WHERE Country > 'A' AND Country < 'ARG';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Country Country 3 NULL 19 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Country Country 3 NULL 19 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Name LIKE 'H%' OR Name LIKE 'P%' ;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 394 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 394 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Name LIKE 'Ha%' OR Name LIKE 'Pa%' ;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 133 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 133 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ((ID < 10) AND (Name LIKE 'H%' OR (Country > 'A' AND Country < 'ARG')))
|
||||
|
@ -577,27 +577,27 @@ ID Name Country Population
|
|||
EXPLAIN
|
||||
SELECT * FROM City WHERE Population > 101000 AND Population < 102000;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL 38 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Population Population 4 NULL 38 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Population > 101000 AND Population < 110000;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL 327 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Population Population 4 NULL 327 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Country < 'C';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Country Country 3 NULL 446 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Country Country 3 NULL 446 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Country < 'AGO';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Country Country 3 NULL 5 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Country Country 3 NULL 5 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Name BETWEEN 'P' AND 'S';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 384 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 384 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Name BETWEEN 'P' AND 'Pb';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 71 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 71 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE ID BETWEEN 3400 AND 3800;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
|
@ -609,7 +609,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
EXPLAIN
|
||||
SELECT * FROM City WHERE Name LIKE 'P%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 235 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 235 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ((Population > 101000 AND Population < 102000) AND
|
||||
|
@ -680,23 +680,23 @@ CREATE INDEX CountryPopulation ON City(Country,Population);
|
|||
EXPLAIN
|
||||
SELECT * FROM City WHERE Name LIKE 'Pas%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 8 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 8 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Name LIKE 'P%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 235 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 235 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Population > 101000 AND Population < 103000);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL 80 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Population Population 4 NULL 80 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Country='USA';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City ref Country,CountryPopulation Country 3 const 274 Using index condition
|
||||
1 SIMPLE City ref Country,CountryPopulation Country 3 const 274 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Country='FIN';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City ref Country,CountryPopulation Country 3 const 7 Using index condition
|
||||
1 SIMPLE City ref Country,CountryPopulation Country 3 const 7 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ((Population > 101000 AND Population < 103000) OR Name LIKE 'Pas%')
|
||||
|
@ -708,7 +708,7 @@ SELECT * FROM City
|
|||
WHERE ((Population > 101000 AND Population < 103000) OR Name LIKE 'P%')
|
||||
AND Country='FIN';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City ref Population,Country,Name,CountryPopulation Country 3 const 7 Using index condition; Using where
|
||||
1 SIMPLE City ref Population,Country,Name,CountryPopulation Country 3 const 7 Using where
|
||||
SELECT * FROM City
|
||||
WHERE ((Population > 101000 AND Population < 103000) OR Name LIKE 'Pas%')
|
||||
AND Country='USA';
|
||||
|
@ -753,15 +753,15 @@ CREATE INDEX CountryName ON City(Country,Name);
|
|||
EXPLAIN
|
||||
SELECT * FROM City WHERE Country='USA';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City ref Country,CountryPopulation,CountryName Country 3 const 274 Using index condition
|
||||
1 SIMPLE City ref Country,CountryPopulation,CountryName Country 3 const 274 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Country='FIN';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City ref Country,CountryPopulation,CountryName Country 3 const 7 Using index condition
|
||||
1 SIMPLE City ref Country,CountryPopulation,CountryName Country 3 const 7 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Country='BRA';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City ref Country,CountryPopulation,CountryName Country 3 const 250 Using index condition
|
||||
1 SIMPLE City ref Country,CountryPopulation,CountryName Country 3 const 250 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE ID BETWEEN 3790 AND 3800;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
|
@ -789,15 +789,15 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Population > 101000 AND Population < 102000);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL 38 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Population Population 4 NULL 38 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE (Population > 101000 AND Population < 103000);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Population Population 4 NULL 80 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Population Population 4 NULL 80 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE Name LIKE 'Pa%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range Name Name 35 NULL 71 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE City range Name Name 35 NULL 71 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ((Population > 101000 AND Population < 102000) OR
|
||||
|
@ -818,7 +818,7 @@ WHERE ((Population > 101000 AND Population < 110000) OR
|
|||
ID BETWEEN 3500 AND 3800) AND Country='FIN'
|
||||
AND (Name BETWEEN 'P' AND 'T' OR ID BETWEEN 4000 AND 4300);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City ref PRIMARY,Population,Country,Name,CountryPopulation,CountryName Country 3 const 7 Using index condition; Using where
|
||||
1 SIMPLE City ref PRIMARY,Population,Country,Name,CountryPopulation,CountryName Country 3 const 7 Using where
|
||||
SELECT * FROM City USE INDEX ()
|
||||
WHERE ((Population > 101000 AND Population < 102000) OR
|
||||
ID BETWEEN 3790 AND 3800) AND Country='USA'
|
||||
|
@ -950,14 +950,14 @@ WHERE ((Population > 101000 AND Population < 11000) OR
|
|||
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
||||
AND (Name LIKE 'P%' OR ID BETWEEN 4000 AND 4300);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY,Population,Country,Name,CountryPopulation,CountryName CountryName 38 NULL 18 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY,Population,Country,Name,CountryPopulation,CountryName CountryName 38 NULL 18 Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ((Population > 101000 AND Population < 11000) OR
|
||||
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
||||
AND (Name LIKE 'Pho%' OR ID BETWEEN 4000 AND 4300);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE City range PRIMARY,Population,Country,Name,CountryPopulation,CountryName Name 35 NULL 1 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE City range PRIMARY,Population,Country,Name,CountryPopulation,CountryName Name 35 NULL 1 Using where
|
||||
SELECT * FROM City USE INDEX ()
|
||||
WHERE ((Population > 101000 AND Population < 11000) OR
|
||||
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
||||
|
|
|
@ -185,37 +185,37 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t2 range fld1 fld1 4 NULL 4 Using where; Using index
|
||||
select fld1,fld3 from t2 where companynr = 37 and fld3 like 'f%';
|
||||
fld1 fld3
|
||||
012001 flanking
|
||||
013602 foldout
|
||||
013606 fingerings
|
||||
218401 faithful
|
||||
018007 fanatic
|
||||
228311 fated
|
||||
018017 featherweight
|
||||
218022 feed
|
||||
088303 feminine
|
||||
058004 Fenton
|
||||
038017 fetched
|
||||
018054 fetters
|
||||
208101 fiftieth
|
||||
238007 filial
|
||||
013606 fingerings
|
||||
218008 finishers
|
||||
038205 firearm
|
||||
188505 fitting
|
||||
202301 Fitzpatrick
|
||||
238008 fixedly
|
||||
012001 flanking
|
||||
018103 flint
|
||||
018104 flopping
|
||||
036002 funereal
|
||||
038017 fetched
|
||||
038205 firearm
|
||||
058004 Fenton
|
||||
088303 feminine
|
||||
186002 freakish
|
||||
188007 flurried
|
||||
188505 fitting
|
||||
198006 furthermore
|
||||
202301 Fitzpatrick
|
||||
208101 fiftieth
|
||||
208113 freest
|
||||
218008 finishers
|
||||
218022 feed
|
||||
218401 faithful
|
||||
013602 foldout
|
||||
226205 foothill
|
||||
226209 furnishings
|
||||
228306 forthcoming
|
||||
228311 fated
|
||||
231315 freezes
|
||||
232102 forgivably
|
||||
238007 filial
|
||||
238008 fixedly
|
||||
228306 forthcoming
|
||||
186002 freakish
|
||||
208113 freest
|
||||
231315 freezes
|
||||
036002 funereal
|
||||
226209 furnishings
|
||||
198006 furthermore
|
||||
select fld3 from t2 where fld3 like "L%" and fld3 = "ok";
|
||||
fld3
|
||||
select fld3 from t2 where (fld3 like "C%" and fld3 = "Chantilly");
|
||||
|
@ -3417,7 +3417,7 @@ SELECT t2.sku, t2.sppr, t2.name, t1.sku, t1.pr
|
|||
FROM t2, t1 WHERE t2.sku=20 AND (t2.sku=t1.sku OR t2.sppr=t1.sku);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using where
|
||||
DROP TABLE t1,t2;
|
||||
CREATE TABLE t1 (i TINYINT UNSIGNED NOT NULL);
|
||||
INSERT t1 SET i = 0;
|
||||
|
@ -3453,7 +3453,7 @@ In next EXPLAIN, B.rows must be exactly 10:
|
|||
explain select * from t2 A, t2 B where A.a=5 and A.b=5 and A.C<5
|
||||
and B.a=5 and B.b=A.e and (B.b =1 or B.b = 3 or B.b=5);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE A range PRIMARY PRIMARY 12 NULL 4 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE A range PRIMARY PRIMARY 12 NULL 4 Using where
|
||||
1 SIMPLE B ref PRIMARY PRIMARY 8 const,test.A.e 10
|
||||
drop table t1, t2;
|
||||
CREATE TABLE t1 (a int PRIMARY KEY, b int, INDEX(b));
|
||||
|
@ -3467,12 +3467,12 @@ INSERT INTO t2 VALUES
|
|||
EXPLAIN
|
||||
SELECT a, c, d, f FROM t1,t2 WHERE a=c AND b BETWEEN 4 AND 6;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY,b b 5 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY,b b 5 NULL 3 Using where
|
||||
1 SIMPLE t2 ref c c 5 test.t1.a 2
|
||||
EXPLAIN
|
||||
SELECT a, c, d, f FROM t1,t2 WHERE a=c AND b BETWEEN 4 AND 6 AND a > 0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY,b b 5 NULL 3 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY,b b 5 NULL 3 Using where
|
||||
1 SIMPLE t2 ref c c 5 test.t1.a 2
|
||||
DROP TABLE t1, t2;
|
||||
create table t1 (
|
||||
|
@ -3562,19 +3562,19 @@ EXPLAIN SELECT t2.*
|
|||
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
||||
WHERE t2.fk < 'c' AND t2.pk=t1.fk;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 3 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 3 Using where
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
|
||||
EXPLAIN SELECT t2.*
|
||||
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
||||
WHERE t2.fk BETWEEN 'a' AND 'b' AND t2.pk=t1.fk;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 2 Using where
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
|
||||
EXPLAIN SELECT t2.*
|
||||
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
||||
WHERE t2.fk IN ('a','b') AND t2.pk=t1.fk;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 2 Using where
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
|
||||
DROP TABLE t1,t2;
|
||||
CREATE TABLE t1 (a int, b varchar(20) NOT NULL, PRIMARY KEY(a));
|
||||
|
@ -3608,7 +3608,7 @@ WHERE t1.id = 8 AND t2.i BETWEEN t1.b AND t1.e AND
|
|||
t3.a=t2.a AND t3.c IN ('bb','ee');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||
1 SIMPLE t2 range si si 5 NULL 4 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t2 range si si 5 NULL 4 Using where
|
||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
||||
EXPLAIN
|
||||
SELECT t3.a FROM t1,t2,t3
|
||||
|
@ -3616,7 +3616,7 @@ WHERE t1.id = 8 AND t2.i BETWEEN t1.b AND t1.e AND
|
|||
t3.a=t2.a AND t3.c IN ('bb','ee') ;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||
1 SIMPLE t2 range si,ai si 5 NULL 4 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t2 range si,ai si 5 NULL 4 Using where
|
||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
||||
EXPLAIN
|
||||
SELECT t3.a FROM t1,t2 FORCE INDEX (si),t3
|
||||
|
@ -3624,7 +3624,7 @@ WHERE t1.id = 8 AND (t2.i=t1.b OR t2.i=t1.e) AND t3.a=t2.a AND
|
|||
t3.c IN ('bb','ee');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||
1 SIMPLE t2 range si si 5 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t2 range si si 5 NULL 2 Using where
|
||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
||||
EXPLAIN
|
||||
SELECT t3.a FROM t1,t2,t3
|
||||
|
@ -3632,7 +3632,7 @@ WHERE t1.id = 8 AND (t2.i=t1.b OR t2.i=t1.e) AND t3.a=t2.a AND
|
|||
t3.c IN ('bb','ee');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||
1 SIMPLE t2 range si,ai si 5 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t2 range si,ai si 5 NULL 2 Using where
|
||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
||||
DROP TABLE t1,t2,t3;
|
||||
CREATE TABLE t1 ( f1 int primary key, f2 int, f3 int, f4 int, f5 int, f6 int, checked_out int);
|
||||
|
@ -3752,7 +3752,7 @@ AND t1.ts BETWEEN t2.dt1 AND t2.dt2
|
|||
AND t1.ts BETWEEN "2006-01-01" AND "2006-12-31";
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
|
||||
1 SIMPLE t1 range ts ts 4 NULL 1 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range ts ts 4 NULL 1 Using where
|
||||
SELECT * FROM t1 LEFT JOIN t2 ON (t1.a=t2.a) WHERE t1.a=30
|
||||
AND t1.ts BETWEEN t2.dt1 AND t2.dt2
|
||||
AND t1.ts BETWEEN "2006-01-01" AND "2006-12-31";
|
||||
|
@ -4377,12 +4377,12 @@ CREATE TABLE t1 (a INT KEY, b INT);
|
|||
INSERT INTO t1 VALUES (1,1), (2,2), (3,3), (4,4);
|
||||
EXPLAIN EXTENDED SELECT a, b FROM t1 WHERE a > 1 AND a = b LIMIT 2;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 100.00 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 100.00 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where ((`test`.`t1`.`b` = `test`.`t1`.`a`) and (`test`.`t1`.`a` > 1)) limit 2
|
||||
EXPLAIN EXTENDED SELECT a, b FROM t1 WHERE a > 1 AND b = a LIMIT 2;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 100.00 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 100.00 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where ((`test`.`t1`.`b` = `test`.`t1`.`a`) and (`test`.`t1`.`a` > 1)) limit 2
|
||||
DROP TABLE t1;
|
||||
|
@ -4895,6 +4895,7 @@ INSERT INTO t3 VALUES
|
|||
(4,'z'), (3,'zzz'), (5,'zzzzz'), (3,'z'), (4,'zzz'), (3,'zzzz'),
|
||||
(9,'zzzzz'), (2,'zzz'), (1,'zzzz'), (9,'zzz'), (1,'zzzz'), (5,'zzzzz'),
|
||||
(4,'zzz'), (3,'zzzz'), (5,'zzzz'), (3,'zzz'), (4,'zz'), (3,'zzzzz');
|
||||
set @tmp= @@optimizer_switch;
|
||||
SET SESSION optimizer_switch='index_condition_pushdown=off';
|
||||
EXPLAIN SELECT * from t1,t2,t3 WHERE t3.a3=t1.a1 AND t2.a2=t1.a1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
|
@ -4974,7 +4975,7 @@ a1 b1 a2 b2 a3 b3
|
|||
2 xx 2 y 2 zzzz
|
||||
2 xx 2 yy 2 zz
|
||||
2 xx 2 yy 2 zzz
|
||||
SET SESSION optimizer_switch=DEFAULT;
|
||||
SET SESSION optimizer_switch=@tmp;
|
||||
DROP TABLE t1,t2,t3;
|
||||
#
|
||||
# Bug #707555: crash with equality substitution in ref
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
set @save_optimizer_switch_jcl6=@@optimizer_switch;
|
||||
set @@optimizer_switch='semijoin_with_cache=on';
|
||||
set @@optimizer_switch='outer_join_with_cache=on';
|
||||
set @@optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
set join_cache_level=6;
|
||||
show variables like 'join_cache_level';
|
||||
Variable_name Value
|
||||
|
@ -4902,6 +4903,7 @@ INSERT INTO t3 VALUES
|
|||
(4,'z'), (3,'zzz'), (5,'zzzzz'), (3,'z'), (4,'zzz'), (3,'zzzz'),
|
||||
(9,'zzzzz'), (2,'zzz'), (1,'zzzz'), (9,'zzz'), (1,'zzzz'), (5,'zzzzz'),
|
||||
(4,'zzz'), (3,'zzzz'), (5,'zzzz'), (3,'zzz'), (4,'zz'), (3,'zzzzz');
|
||||
set @tmp= @@optimizer_switch;
|
||||
SET SESSION optimizer_switch='index_condition_pushdown=off';
|
||||
EXPLAIN SELECT * from t1,t2,t3 WHERE t3.a3=t1.a1 AND t2.a2=t1.a1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
|
@ -4981,7 +4983,7 @@ a1 b1 a2 b2 a3 b3
|
|||
2 xx 2 y 2 zzzz
|
||||
2 xx 2 yy 2 zz
|
||||
2 xx 2 yy 2 zzz
|
||||
SET SESSION optimizer_switch=DEFAULT;
|
||||
SET SESSION optimizer_switch=@tmp;
|
||||
DROP TABLE t1,t2,t3;
|
||||
#
|
||||
# Bug #707555: crash with equality substitution in ref
|
||||
|
|
|
@ -185,37 +185,37 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t2 range fld1 fld1 4 NULL 4 Using where; Using index
|
||||
select fld1,fld3 from t2 where companynr = 37 and fld3 like 'f%';
|
||||
fld1 fld3
|
||||
012001 flanking
|
||||
013602 foldout
|
||||
013606 fingerings
|
||||
218401 faithful
|
||||
018007 fanatic
|
||||
228311 fated
|
||||
018017 featherweight
|
||||
218022 feed
|
||||
088303 feminine
|
||||
058004 Fenton
|
||||
038017 fetched
|
||||
018054 fetters
|
||||
208101 fiftieth
|
||||
238007 filial
|
||||
013606 fingerings
|
||||
218008 finishers
|
||||
038205 firearm
|
||||
188505 fitting
|
||||
202301 Fitzpatrick
|
||||
238008 fixedly
|
||||
012001 flanking
|
||||
018103 flint
|
||||
018104 flopping
|
||||
036002 funereal
|
||||
038017 fetched
|
||||
038205 firearm
|
||||
058004 Fenton
|
||||
088303 feminine
|
||||
186002 freakish
|
||||
188007 flurried
|
||||
188505 fitting
|
||||
198006 furthermore
|
||||
202301 Fitzpatrick
|
||||
208101 fiftieth
|
||||
208113 freest
|
||||
218008 finishers
|
||||
218022 feed
|
||||
218401 faithful
|
||||
013602 foldout
|
||||
226205 foothill
|
||||
226209 furnishings
|
||||
228306 forthcoming
|
||||
228311 fated
|
||||
231315 freezes
|
||||
232102 forgivably
|
||||
238007 filial
|
||||
238008 fixedly
|
||||
228306 forthcoming
|
||||
186002 freakish
|
||||
208113 freest
|
||||
231315 freezes
|
||||
036002 funereal
|
||||
226209 furnishings
|
||||
198006 furthermore
|
||||
select fld3 from t2 where fld3 like "L%" and fld3 = "ok";
|
||||
fld3
|
||||
select fld3 from t2 where (fld3 like "C%" and fld3 = "Chantilly");
|
||||
|
@ -3417,7 +3417,7 @@ SELECT t2.sku, t2.sppr, t2.name, t1.sku, t1.pr
|
|||
FROM t2, t1 WHERE t2.sku=20 AND (t2.sku=t1.sku OR t2.sppr=t1.sku);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using where
|
||||
DROP TABLE t1,t2;
|
||||
CREATE TABLE t1 (i TINYINT UNSIGNED NOT NULL);
|
||||
INSERT t1 SET i = 0;
|
||||
|
@ -3453,7 +3453,7 @@ In next EXPLAIN, B.rows must be exactly 10:
|
|||
explain select * from t2 A, t2 B where A.a=5 and A.b=5 and A.C<5
|
||||
and B.a=5 and B.b=A.e and (B.b =1 or B.b = 3 or B.b=5);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE A range PRIMARY PRIMARY 12 NULL 4 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE A range PRIMARY PRIMARY 12 NULL 4 Using where
|
||||
1 SIMPLE B ref PRIMARY PRIMARY 8 const,test.A.e 10
|
||||
drop table t1, t2;
|
||||
CREATE TABLE t1 (a int PRIMARY KEY, b int, INDEX(b));
|
||||
|
@ -3467,12 +3467,12 @@ INSERT INTO t2 VALUES
|
|||
EXPLAIN
|
||||
SELECT a, c, d, f FROM t1,t2 WHERE a=c AND b BETWEEN 4 AND 6;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY,b b 5 NULL 3 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY,b b 5 NULL 3 Using where
|
||||
1 SIMPLE t2 ref c c 5 test.t1.a 2
|
||||
EXPLAIN
|
||||
SELECT a, c, d, f FROM t1,t2 WHERE a=c AND b BETWEEN 4 AND 6 AND a > 0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY,b b 5 NULL 3 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY,b b 5 NULL 3 Using where
|
||||
1 SIMPLE t2 ref c c 5 test.t1.a 2
|
||||
DROP TABLE t1, t2;
|
||||
create table t1 (
|
||||
|
@ -3562,19 +3562,19 @@ EXPLAIN SELECT t2.*
|
|||
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
||||
WHERE t2.fk < 'c' AND t2.pk=t1.fk;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 3 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 3 Using where
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
|
||||
EXPLAIN SELECT t2.*
|
||||
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
||||
WHERE t2.fk BETWEEN 'a' AND 'b' AND t2.pk=t1.fk;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 2 Using where
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
|
||||
EXPLAIN SELECT t2.*
|
||||
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
||||
WHERE t2.fk IN ('a','b') AND t2.pk=t1.fk;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 2 Using where
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
|
||||
DROP TABLE t1,t2;
|
||||
CREATE TABLE t1 (a int, b varchar(20) NOT NULL, PRIMARY KEY(a));
|
||||
|
@ -3608,7 +3608,7 @@ WHERE t1.id = 8 AND t2.i BETWEEN t1.b AND t1.e AND
|
|||
t3.a=t2.a AND t3.c IN ('bb','ee');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||
1 SIMPLE t2 range si si 5 NULL 4 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t2 range si si 5 NULL 4 Using where
|
||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
||||
EXPLAIN
|
||||
SELECT t3.a FROM t1,t2,t3
|
||||
|
@ -3616,7 +3616,7 @@ WHERE t1.id = 8 AND t2.i BETWEEN t1.b AND t1.e AND
|
|||
t3.a=t2.a AND t3.c IN ('bb','ee') ;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||
1 SIMPLE t2 range si,ai si 5 NULL 4 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t2 range si,ai si 5 NULL 4 Using where
|
||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
||||
EXPLAIN
|
||||
SELECT t3.a FROM t1,t2 FORCE INDEX (si),t3
|
||||
|
@ -3624,7 +3624,7 @@ WHERE t1.id = 8 AND (t2.i=t1.b OR t2.i=t1.e) AND t3.a=t2.a AND
|
|||
t3.c IN ('bb','ee');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||
1 SIMPLE t2 range si si 5 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t2 range si si 5 NULL 2 Using where
|
||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
||||
EXPLAIN
|
||||
SELECT t3.a FROM t1,t2,t3
|
||||
|
@ -3632,7 +3632,7 @@ WHERE t1.id = 8 AND (t2.i=t1.b OR t2.i=t1.e) AND t3.a=t2.a AND
|
|||
t3.c IN ('bb','ee');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||
1 SIMPLE t2 range si,ai si 5 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t2 range si,ai si 5 NULL 2 Using where
|
||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
||||
DROP TABLE t1,t2,t3;
|
||||
CREATE TABLE t1 ( f1 int primary key, f2 int, f3 int, f4 int, f5 int, f6 int, checked_out int);
|
||||
|
@ -3752,7 +3752,7 @@ AND t1.ts BETWEEN t2.dt1 AND t2.dt2
|
|||
AND t1.ts BETWEEN "2006-01-01" AND "2006-12-31";
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
|
||||
1 SIMPLE t1 range ts ts 4 NULL 1 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range ts ts 4 NULL 1 Using where
|
||||
SELECT * FROM t1 LEFT JOIN t2 ON (t1.a=t2.a) WHERE t1.a=30
|
||||
AND t1.ts BETWEEN t2.dt1 AND t2.dt2
|
||||
AND t1.ts BETWEEN "2006-01-01" AND "2006-12-31";
|
||||
|
@ -4377,12 +4377,12 @@ CREATE TABLE t1 (a INT KEY, b INT);
|
|||
INSERT INTO t1 VALUES (1,1), (2,2), (3,3), (4,4);
|
||||
EXPLAIN EXTENDED SELECT a, b FROM t1 WHERE a > 1 AND a = b LIMIT 2;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 100.00 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 100.00 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where ((`test`.`t1`.`b` = `test`.`t1`.`a`) and (`test`.`t1`.`a` > 1)) limit 2
|
||||
EXPLAIN EXTENDED SELECT a, b FROM t1 WHERE a > 1 AND b = a LIMIT 2;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 100.00 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 100.00 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where ((`test`.`t1`.`b` = `test`.`t1`.`a`) and (`test`.`t1`.`a` > 1)) limit 2
|
||||
DROP TABLE t1;
|
||||
|
@ -4895,6 +4895,7 @@ INSERT INTO t3 VALUES
|
|||
(4,'z'), (3,'zzz'), (5,'zzzzz'), (3,'z'), (4,'zzz'), (3,'zzzz'),
|
||||
(9,'zzzzz'), (2,'zzz'), (1,'zzzz'), (9,'zzz'), (1,'zzzz'), (5,'zzzzz'),
|
||||
(4,'zzz'), (3,'zzzz'), (5,'zzzz'), (3,'zzz'), (4,'zz'), (3,'zzzzz');
|
||||
set @tmp= @@optimizer_switch;
|
||||
SET SESSION optimizer_switch='index_condition_pushdown=off';
|
||||
EXPLAIN SELECT * from t1,t2,t3 WHERE t3.a3=t1.a1 AND t2.a2=t1.a1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
|
@ -4974,7 +4975,7 @@ a1 b1 a2 b2 a3 b3
|
|||
2 xx 2 y 2 zzzz
|
||||
2 xx 2 yy 2 zz
|
||||
2 xx 2 yy 2 zzz
|
||||
SET SESSION optimizer_switch=DEFAULT;
|
||||
SET SESSION optimizer_switch=@tmp;
|
||||
DROP TABLE t1,t2,t3;
|
||||
#
|
||||
# Bug #707555: crash with equality substitution in ref
|
||||
|
|
|
@ -3,6 +3,7 @@ drop view if exists v2;
|
|||
set @subselect_tmp=@@optimizer_switch;
|
||||
set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test,
|
||||
"semijoin=on,firstmatch=on,loosescan=on,partial_match_rowid_merge=off,partial_match_table_scan=off");
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
select (select 2);
|
||||
(select 2)
|
||||
2
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
drop table if exists t1, t2, t3, t4;
|
||||
set @subselect2_test_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='semijoin=on,firstmatch=on';
|
||||
set optimizer_switch='semijoin=on,firstmatch=on,mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
CREATE TABLE t1
|
||||
(
|
||||
DOCID VARCHAR(32)BINARY NOT NULL
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
set @save_optimizer_switch=@@optimizer_switch;
|
||||
set @@optimizer_switch='semijoin_with_cache=on';
|
||||
set @@optimizer_switch='outer_join_with_cache=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
set join_cache_level=6;
|
||||
show variables like 'join_cache_level';
|
||||
Variable_name Value
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
drop table if exists t1,t2,t3,t4,t5,t6;
|
||||
set @subselect4_tmp= @@optimizer_switch;
|
||||
set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
#
|
||||
# Bug #46791: Assertion failed:(table->key_read==0),function unknown
|
||||
# function,file sql_base.cc
|
||||
|
|
323
mysql-test/r/subselect_extra.result
Normal file
323
mysql-test/r/subselect_extra.result
Normal file
|
@ -0,0 +1,323 @@
|
|||
drop table if exists t1,t2,t3,t4;
|
||||
set @subselect_extra_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on';
|
||||
# From explain.test:
|
||||
#
|
||||
# Bug#37870: Usage of uninitialized value caused failed assertion.
|
||||
#
|
||||
create table t1 (dt datetime not null, t time not null);
|
||||
create table t2 (dt datetime not null);
|
||||
insert into t1 values ('2001-01-01 1:1:1', '1:1:1'),
|
||||
('2001-01-01 1:1:1', '1:1:1');
|
||||
insert into t2 values ('2001-01-01 1:1:1'), ('2001-01-01 1:1:1');
|
||||
flush tables;
|
||||
EXPLAIN SELECT OUTR.dt FROM t1 AS OUTR WHERE OUTR.dt IN (SELECT INNR.dt FROM t2 AS INNR WHERE OUTR.dt IS NULL );
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY OUTR ALL NULL NULL NULL NULL 2 Using where; Start temporary
|
||||
1 PRIMARY INNR ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (flat, BNL join)
|
||||
flush tables;
|
||||
SELECT OUTR.dt FROM t1 AS OUTR WHERE OUTR.dt IN (SELECT INNR.dt FROM t2 AS INNR WHERE OUTR.dt IS NULL );
|
||||
dt
|
||||
flush tables;
|
||||
EXPLAIN SELECT OUTR.dt FROM t1 AS OUTR WHERE OUTR.dt IN ( SELECT INNR.dt FROM t2 AS INNR WHERE OUTR.t < '2005-11-13 7:41:31' );
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY OUTR ALL NULL NULL NULL NULL 2 Using where; Start temporary
|
||||
1 PRIMARY INNR ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (flat, BNL join)
|
||||
flush tables;
|
||||
SELECT OUTR.dt FROM t1 AS OUTR WHERE OUTR.dt IN ( SELECT INNR.dt FROM t2 AS INNR WHERE OUTR.t < '2005-11-13 7:41:31' );
|
||||
dt
|
||||
2001-01-01 01:01:01
|
||||
2001-01-01 01:01:01
|
||||
drop tables t1, t2;
|
||||
# From type_datetime.test:
|
||||
#
|
||||
# Bug #32694: NOT NULL table field in a subquery produces invalid results
|
||||
#
|
||||
create table t1 (id int(10) not null, cur_date datetime not null);
|
||||
create table t2 (id int(10) not null, cur_date date not null);
|
||||
insert into t1 (id, cur_date) values (1, '2007-04-25 18:30:22');
|
||||
insert into t2 (id, cur_date) values (1, '2007-04-25');
|
||||
explain extended
|
||||
select * from t1
|
||||
where id in (select id from t1 as x1 where (t1.cur_date is null));
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t1.cur_date' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select 1 AS `id`,'2007-04-25 18:30:22' AS `cur_date` from `test`.`t1` semi join (`test`.`t1` `x1`) where (('2007-04-25 18:30:22' = 0))
|
||||
select * from t1
|
||||
where id in (select id from t1 as x1 where (t1.cur_date is null));
|
||||
id cur_date
|
||||
explain extended
|
||||
select * from t2
|
||||
where id in (select id from t2 as x1 where (t2.cur_date is null));
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t2.cur_date' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select 1 AS `id`,'2007-04-25' AS `cur_date` from `test`.`t2` semi join (`test`.`t2` `x1`) where (('2007-04-25' = 0))
|
||||
select * from t2
|
||||
where id in (select id from t2 as x1 where (t2.cur_date is null));
|
||||
id cur_date
|
||||
insert into t1 (id, cur_date) values (2, '2007-04-26 18:30:22');
|
||||
insert into t2 (id, cur_date) values (2, '2007-04-26');
|
||||
explain extended
|
||||
select * from t1
|
||||
where id in (select id from t1 as x1 where (t1.cur_date is null));
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where; Start temporary
|
||||
1 PRIMARY x1 ALL NULL NULL NULL NULL 2 100.00 Using where; End temporary; Using join buffer (flat, BNL join)
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t1.cur_date' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`t1`.`id` AS `id`,`test`.`t1`.`cur_date` AS `cur_date` from `test`.`t1` semi join (`test`.`t1` `x1`) where ((`test`.`x1`.`id` = `test`.`t1`.`id`) and (`test`.`t1`.`cur_date` = 0))
|
||||
select * from t1
|
||||
where id in (select id from t1 as x1 where (t1.cur_date is null));
|
||||
id cur_date
|
||||
explain extended
|
||||
select * from t2
|
||||
where id in (select id from t2 as x1 where (t2.cur_date is null));
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where; Start temporary
|
||||
1 PRIMARY x1 ALL NULL NULL NULL NULL 2 100.00 Using where; End temporary; Using join buffer (flat, BNL join)
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t2.cur_date' of SELECT #2 was resolved in SELECT #1
|
||||
Note 1003 select `test`.`t2`.`id` AS `id`,`test`.`t2`.`cur_date` AS `cur_date` from `test`.`t2` semi join (`test`.`t2` `x1`) where ((`test`.`x1`.`id` = `test`.`t2`.`id`) and (`test`.`t2`.`cur_date` = 0))
|
||||
select * from t2
|
||||
where id in (select id from t2 as x1 where (t2.cur_date is null));
|
||||
id cur_date
|
||||
drop table t1,t2;
|
||||
#
|
||||
# From group_min_max.test
|
||||
#
|
||||
create table t1 (
|
||||
a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
|
||||
);
|
||||
insert into t1 (a1, a2, b, c, d) values
|
||||
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
||||
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
||||
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
||||
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
||||
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
||||
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
||||
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
||||
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
||||
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
||||
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
||||
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
||||
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
|
||||
('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
|
||||
('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
|
||||
('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
|
||||
('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4'),
|
||||
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
||||
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
||||
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
||||
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
||||
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
||||
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
||||
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
||||
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
||||
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
||||
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
||||
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
||||
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
|
||||
('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
|
||||
('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
|
||||
('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
|
||||
('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4');
|
||||
create index idx_t1_0 on t1 (a1);
|
||||
create index idx_t1_1 on t1 (a1,a2,b,c);
|
||||
create index idx_t1_2 on t1 (a1,a2,b);
|
||||
analyze table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Table is already up to date
|
||||
create table t2 (
|
||||
a1 char(64), a2 char(64) not null, b char(16), c char(16), d char(16), dummy char(64) default ' '
|
||||
);
|
||||
insert into t2 select * from t1;
|
||||
insert into t2 (a1, a2, b, c, d) values
|
||||
('a','a',NULL,'a777','xyz'),('a','a',NULL,'a888','xyz'),('a','a',NULL,'a999','xyz'),
|
||||
('a','a','a',NULL,'xyz'),
|
||||
('a','a','b',NULL,'xyz'),
|
||||
('a','b','a',NULL,'xyz'),
|
||||
('c','a',NULL,'c777','xyz'),('c','a',NULL,'c888','xyz'),('c','a',NULL,'c999','xyz'),
|
||||
('d','b','b',NULL,'xyz'),
|
||||
('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),
|
||||
('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),
|
||||
('a','a',NULL,'a777','xyz'),('a','a',NULL,'a888','xyz'),('a','a',NULL,'a999','xyz'),
|
||||
('a','a','a',NULL,'xyz'),
|
||||
('a','a','b',NULL,'xyz'),
|
||||
('a','b','a',NULL,'xyz'),
|
||||
('c','a',NULL,'c777','xyz'),('c','a',NULL,'c888','xyz'),('c','a',NULL,'c999','xyz'),
|
||||
('d','b','b',NULL,'xyz'),
|
||||
('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),
|
||||
('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz');
|
||||
create index idx_t2_0 on t2 (a1);
|
||||
create index idx_t2_1 on t2 (a1,a2,b,c);
|
||||
create index idx_t2_2 on t2 (a1,a2,b);
|
||||
analyze table t2;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t2 analyze status Table is already up to date
|
||||
create table t3 (
|
||||
a1 char(1), a2 char(1), b char(1), c char(4) not null, d char(3), dummy char(1) default ' '
|
||||
);
|
||||
insert into t3 (a1, a2, b, c, d) values
|
||||
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
||||
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
||||
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
||||
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
||||
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
||||
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
||||
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
||||
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
||||
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
||||
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
||||
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
||||
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
|
||||
insert into t3 (a1, a2, b, c, d) values
|
||||
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
||||
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
||||
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
||||
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
||||
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
||||
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
||||
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
||||
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
||||
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
||||
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
||||
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
||||
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
|
||||
insert into t3 (a1, a2, b, c, d) values
|
||||
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
||||
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
||||
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
||||
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
||||
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
||||
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
||||
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
||||
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
||||
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
||||
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
||||
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
||||
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
|
||||
insert into t3 (a1, a2, b, c, d) values
|
||||
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
||||
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
||||
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
||||
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
||||
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
||||
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
||||
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
||||
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
||||
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
||||
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
||||
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
||||
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
|
||||
create index idx_t3_0 on t3 (a1);
|
||||
create index idx_t3_1 on t3 (a1,a2,b,c);
|
||||
create index idx_t3_2 on t3 (a1,a2,b);
|
||||
analyze table t3;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t3 analyze status Table is already up to date
|
||||
explain select a1,a2,b,c,min(c), max(c) from t1
|
||||
where exists ( select * from t2
|
||||
where t2.c in (select c from t3 where t3.c > t1.b) and
|
||||
t2.c > 'b1' )
|
||||
group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
|
||||
2 DEPENDENT SUBQUERY t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
|
||||
2 DEPENDENT SUBQUERY t3 index NULL idx_t3_1 10 NULL 192 Using where; Using index; FirstMatch(t2)
|
||||
select a1,a2,b,c,min(c), max(c) from t1
|
||||
where exists ( select * from t2
|
||||
where t2.c in (select c from t3 where t3.c > t1.b) and
|
||||
t2.c > 'b1' )
|
||||
group by a1,a2,b;
|
||||
a1 a2 b c min(c) max(c)
|
||||
a a a d111 a111 d111
|
||||
a a b h112 e112 h112
|
||||
a b a l121 i121 l121
|
||||
a b b p122 m122 p122
|
||||
b a a d211 a211 d211
|
||||
b a b h212 e212 h212
|
||||
b b a l221 i221 l221
|
||||
b b b p222 m222 p222
|
||||
c a a d311 a311 d311
|
||||
c a b h312 e312 h312
|
||||
c b a l321 i321 l321
|
||||
c b b p322 m322 p322
|
||||
d a a d411 a411 d411
|
||||
d a b h412 e412 h412
|
||||
d b a l421 i421 l421
|
||||
d b b p422 m422 p422
|
||||
explain select a1,a2,b,c,min(c), max(c) from t1
|
||||
where exists ( select * from t2
|
||||
where t2.c in (select c from t3 where t3.c > t1.c) and
|
||||
t2.c > 'b1' )
|
||||
group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 index NULL idx_t1_1 163 NULL 128 Using where; Using index
|
||||
2 DEPENDENT SUBQUERY t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
|
||||
2 DEPENDENT SUBQUERY t3 index NULL idx_t3_1 10 NULL 192 Using where; Using index; FirstMatch(t2)
|
||||
select a1,a2,b,c,min(c), max(c) from t1
|
||||
where exists ( select * from t2
|
||||
where t2.c in (select c from t3 where t3.c > t1.c) and
|
||||
t2.c > 'b1' )
|
||||
group by a1,a2,b;
|
||||
a1 a2 b c min(c) max(c)
|
||||
a a a a111 a111 d111
|
||||
a a b e112 e112 h112
|
||||
a b a i121 i121 l121
|
||||
a b b m122 m122 p122
|
||||
b a a a211 a211 d211
|
||||
b a b e212 e212 h212
|
||||
b b a i221 i221 l221
|
||||
b b b m222 m222 p222
|
||||
c a a a311 a311 d311
|
||||
c a b e312 e312 h312
|
||||
c b a i321 i321 l321
|
||||
c b b m322 m322 o322
|
||||
d a a a411 a411 d411
|
||||
d a b e412 e412 h412
|
||||
d b a i421 i421 l421
|
||||
d b b m422 m422 o422
|
||||
drop table t1, t2, t3;
|
||||
#
|
||||
# From group_by.test
|
||||
#
|
||||
# Bug #21174: Index degrades sort performance and
|
||||
# optimizer does not honor IGNORE INDEX.
|
||||
# a.k.a WL3527.
|
||||
#
|
||||
CREATE TABLE t1 (a INT, b INT,
|
||||
PRIMARY KEY (a),
|
||||
KEY i2(a,b));
|
||||
INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8);
|
||||
INSERT INTO t1 SELECT a + 8,b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 16,b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 32,b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 64,b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 128,b FROM t1 limit 16;
|
||||
ANALYZE TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
EXPLAIN SELECT 1 FROM t1 WHERE a IN
|
||||
(SELECT a FROM t1 USE INDEX (i2) IGNORE INDEX (i2));
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 index PRIMARY,i2 PRIMARY 4 NULL 144 Using index
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 144 Using where; FirstMatch(t1)
|
||||
CREATE TABLE t2 (a INT, b INT, KEY(a));
|
||||
INSERT INTO t2 VALUES (1, 1), (2, 2), (3,3), (4,4);
|
||||
EXPLAIN SELECT a, SUM(b) FROM t2 GROUP BY a LIMIT 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 index NULL a 5 NULL 2
|
||||
EXPLAIN SELECT a, SUM(b) FROM t2 IGNORE INDEX (a) GROUP BY a LIMIT 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 4 Using temporary; Using filesort
|
||||
EXPLAIN SELECT 1 FROM t2 WHERE a IN
|
||||
(SELECT a FROM t1 USE INDEX (i2) IGNORE INDEX (i2));
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t2 index a a 5 NULL 4 Using index
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 144 Using where; FirstMatch(t2)
|
||||
DROP TABLE t1, t2;
|
||||
set optimizer_switch= @subselect_extra_tmp;
|
|
@ -1,3 +1,5 @@
|
|||
set @subselect_innodb_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
drop table if exists t1,t2,t3;
|
||||
CREATE TABLE t1
|
||||
(
|
||||
|
@ -245,3 +247,4 @@ x
|
|||
NULL
|
||||
drop procedure p1;
|
||||
drop tables t1,t2,t3;
|
||||
set optimizer_switch=@subselect_innodb_tmp;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
set @subselect_mat_test_optimizer_switch_value='materialization=on,in_to_exists=off,semijoin=off';
|
||||
set @subselect_sj_mat_tmp= @@optimizer_switch;
|
||||
set optimizer_switch=ifnull(@subselect_mat_test_optimizer_switch_value, 'semijoin=on,firstmatch=on,loosescan=on');
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
set @optimizer_switch_local_default= @@optimizer_switch;
|
||||
drop table if exists t1, t2, t3, t1i, t2i, t3i;
|
||||
drop table if exists columns;
|
||||
|
@ -1337,6 +1338,7 @@ drop table t1_1024, t2_1024;
|
|||
set optimizer_switch=@subselect_sj_mat_tmp;
|
||||
set @subselect_mat_test_optimizer_switch_value=null;
|
||||
set @@optimizer_switch='materialization=on,in_to_exists=off,semijoin=off';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
create table t0 (a int);
|
||||
insert into t0 values (0),(1),(2);
|
||||
create table t1 (a int);
|
||||
|
@ -1454,7 +1456,7 @@ EXPLAIN SELECT pk FROM t1 WHERE (a) IN (SELECT a FROM t2 WHERE pk > 0);
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 5 func 1
|
||||
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Rowid-ordered scan
|
||||
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 2 Using where
|
||||
SELECT pk FROM t1 WHERE (a) IN (SELECT a FROM t2 WHERE pk > 0);
|
||||
pk
|
||||
2
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
set @subselect_mat_cost=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
TEST GROUP 1:
|
||||
Typical cases of in-to-exists and materialization subquery strategies
|
||||
=====================================================================
|
||||
|
@ -557,3 +559,4 @@ TEST GROUP 2:
|
|||
Tests of various combinations of optimizer switches, types of queries,
|
||||
available indexes, column nullability, constness of tables/predicates.
|
||||
=====================================================================
|
||||
set optimizer_switch=@subselect_mat_cost;
|
||||
|
|
|
@ -2,11 +2,13 @@ select @@optimizer_switch like '%materialization=on%';
|
|||
@@optimizer_switch like '%materialization=on%'
|
||||
0
|
||||
set optimizer_switch='materialization=off';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t11,t12;
|
||||
drop view if exists v2;
|
||||
set @subselect_tmp=@@optimizer_switch;
|
||||
set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test,
|
||||
"semijoin=on,firstmatch=on,loosescan=on,partial_match_rowid_merge=off,partial_match_table_scan=off");
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
select (select 2);
|
||||
(select 2)
|
||||
2
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
set @optimizer_switch_for_subselect_test='materialization=off,semijoin=off';
|
||||
set @optimizer_switch_for_subselect_test='materialization=off,semijoin=off,mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t11,t12;
|
||||
drop view if exists v2;
|
||||
set @subselect_tmp=@@optimizer_switch;
|
||||
set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test,
|
||||
"semijoin=on,firstmatch=on,loosescan=on,partial_match_rowid_merge=off,partial_match_table_scan=off");
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
select (select 2);
|
||||
(select 2)
|
||||
2
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
set @optimizer_switch_for_subselect_test='semijoin=off';
|
||||
set @optimizer_switch_for_subselect_test='semijoin=off,mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t11,t12;
|
||||
drop view if exists v2;
|
||||
set @subselect_tmp=@@optimizer_switch;
|
||||
set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test,
|
||||
"semijoin=on,firstmatch=on,loosescan=on,partial_match_rowid_merge=off,partial_match_table_scan=off");
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
select (select 2);
|
||||
(select 2)
|
||||
2
|
||||
|
|
|
@ -3,6 +3,7 @@ drop view if exists v1, v2;
|
|||
drop procedure if exists p1;
|
||||
set @subselect_sj_tmp= @@optimizer_switch;
|
||||
set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
set @save_optimizer_switch=@@optimizer_switch;
|
||||
create table t0 (a int);
|
||||
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
set @subselect_sj2_tmp= @@optimizer_switch;
|
||||
set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
drop table if exists t0, t1, t2, t3;
|
||||
drop view if exists v1;
|
||||
create table t0 (a int);
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
set @save_optimizer_switch_jcl6=@@optimizer_switch;
|
||||
set @@optimizer_switch='semijoin_with_cache=on';
|
||||
set @@optimizer_switch='outer_join_with_cache=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
set join_cache_level=6;
|
||||
show variables like 'join_cache_level';
|
||||
Variable_name Value
|
||||
join_cache_level 6
|
||||
set @subselect_sj2_tmp= @@optimizer_switch;
|
||||
set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
drop table if exists t0, t1, t2, t3;
|
||||
drop view if exists v1;
|
||||
create table t0 (a int);
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
set optimizer_switch='materialization=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
set @subselect_sj2_tmp= @@optimizer_switch;
|
||||
set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
drop table if exists t0, t1, t2, t3;
|
||||
drop view if exists v1;
|
||||
create table t0 (a int);
|
||||
|
|
|
@ -3,6 +3,7 @@ set @@optimizer_switch='semijoin=on,firstmatch=on,loosescan=on';
|
|||
set @@optimizer_switch='semijoin_with_cache=on';
|
||||
set @@optimizer_switch='outer_join_with_cache=on';
|
||||
set @@optimizer_switch='join_cache_hashed=off';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
set join_cache_level=6;
|
||||
show variables like 'join_cache_level';
|
||||
Variable_name Value
|
||||
|
@ -12,6 +13,7 @@ drop view if exists v1, v2;
|
|||
drop procedure if exists p1;
|
||||
set @subselect_sj_tmp= @@optimizer_switch;
|
||||
set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
set @save_optimizer_switch=@@optimizer_switch;
|
||||
create table t0 (a int);
|
||||
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
set @subselect_sj_mat_tmp= @@optimizer_switch;
|
||||
set optimizer_switch=ifnull(@subselect_mat_test_optimizer_switch_value, 'semijoin=on,firstmatch=on,loosescan=on');
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
set @optimizer_switch_local_default= @@optimizer_switch;
|
||||
drop table if exists t1, t2, t3, t1i, t2i, t3i;
|
||||
drop table if exists columns;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
drop table if exists t0, t1, t2, t3, t4;
|
||||
set @save_optimizer_switch=@@optimizer_switch;
|
||||
set optimizer_switch='semijoin=on,materialization=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
create table t0 (a int);
|
||||
insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
create table t1 as select * from t0;
|
||||
|
|
|
@ -128,7 +128,7 @@ Note 1003 select `f`.`id` AS `id` from `test`.`t0` `f` where (`f`.`id` in (1,2,3
|
|||
This should use facts and a1 tables:
|
||||
explain extended select id from v1 where attr1 between 12 and 14;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE a1 range PRIMARY,attr1 attr1 5 NULL 2 100.00 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE a1 range PRIMARY,attr1 attr1 5 NULL 2 100.00 Using where
|
||||
1 SIMPLE f eq_ref PRIMARY PRIMARY 4 test.a1.id 1 100.00 Using index
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.a2.id' of SELECT #3 was resolved in SELECT #2
|
||||
|
@ -136,7 +136,7 @@ Note 1003 select `f`.`id` AS `id` from `test`.`t0` `f` join `test`.`t1` `a1` whe
|
|||
This should use facts, a2 and its subquery:
|
||||
explain extended select id from v1 where attr2 between 12 and 14;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE a2 range PRIMARY,attr2 attr2 5 NULL 5 100.00 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE a2 range PRIMARY,attr2 attr2 5 NULL 5 100.00 Using where
|
||||
1 SIMPLE f eq_ref PRIMARY PRIMARY 4 test.a2.id 1 100.00 Using index
|
||||
3 DEPENDENT SUBQUERY t2 ref PRIMARY PRIMARY 4 test.a2.id 2 100.00 Using index
|
||||
Warnings:
|
||||
|
@ -156,7 +156,7 @@ Note 1003 select `f`.`id` AS `id` from `test`.`t0` `f` where (`f`.`id` in (1,2,3
|
|||
This should use facts and a1 tables:
|
||||
explain extended select id from v2 where attr1 between 12 and 14;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE a1 range PRIMARY,attr1 attr1 5 NULL 2 100.00 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE a1 range PRIMARY,attr1 attr1 5 NULL 2 100.00 Using where
|
||||
1 SIMPLE f eq_ref PRIMARY PRIMARY 4 test.a1.id 1 100.00 Using index
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.f.id' of SELECT #3 was resolved in SELECT #2
|
||||
|
@ -164,7 +164,7 @@ Note 1003 select `f`.`id` AS `id` from `test`.`t0` `f` join `test`.`t1` `a1` whe
|
|||
This should use facts, a2 and its subquery:
|
||||
explain extended select id from v2 where attr2 between 12 and 14;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE a2 range PRIMARY,attr2 attr2 5 NULL 5 100.00 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE a2 range PRIMARY,attr2 attr2 5 NULL 5 100.00 Using where
|
||||
1 SIMPLE f eq_ref PRIMARY PRIMARY 4 test.a2.id 1 100.00 Using where; Using index
|
||||
3 DEPENDENT SUBQUERY t2 ref PRIMARY PRIMARY 4 test.f.id 2 100.00 Using index
|
||||
Warnings:
|
||||
|
@ -416,7 +416,7 @@ select t1.*
|
|||
from t1 left join t2 on (t2.pk=3 and t2.b=3) or (t2.pk= 4 and t2.b=3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 4
|
||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 Using where; Rowid-ordered scan
|
||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 Using where
|
||||
drop table t1, t2;
|
||||
#
|
||||
# LPBUG#523593: Running RQG optimizer_no_subquery crashes MariaDB
|
||||
|
|
|
@ -2134,12 +2134,12 @@ INSERT INTO t1 VALUES (2, 'foo2');
|
|||
INSERT INTO t1 VALUES (1, 'foo1');
|
||||
SELECT * FROM v1;
|
||||
id f
|
||||
2 foo2
|
||||
1 foo1
|
||||
2 foo2
|
||||
SELECT * FROM v1;
|
||||
id f
|
||||
2 foo2
|
||||
1 foo1
|
||||
2 foo2
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (pk int PRIMARY KEY, b int);
|
||||
|
|
|
@ -1219,7 +1219,7 @@ count(*)
|
|||
623
|
||||
explain select * from t1 where c between 1 and 2500;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range c c 5 NULL # Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range c c 5 NULL # Using where
|
||||
update t1 set c=a;
|
||||
explain select * from t1 where c between 1 and 2500;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
|
@ -1914,7 +1914,7 @@ qq
|
|||
*a *a*a *
|
||||
explain select * from t1 where v='a';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v,v_2 # 13 const # Using index condition
|
||||
1 SIMPLE t1 ref v,v_2 # 13 const # Using where
|
||||
select v,count(*) from t1 group by v limit 10;
|
||||
v count(*)
|
||||
a 1
|
||||
|
@ -2090,7 +2090,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t1 ref v v 303 const # Using where; Using index
|
||||
explain select * from t1 where v='a';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v v 303 const # Using index condition
|
||||
1 SIMPLE t1 ref v v 303 const # Using where
|
||||
select v,count(*) from t1 group by v limit 10;
|
||||
v count(*)
|
||||
a 1
|
||||
|
|
|
@ -400,10 +400,10 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t1 ref a a 4 test.t2.a 3
|
||||
explain select * from t1 where a=0 or a=2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range a a 4 NULL 4 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range a a 4 NULL 4 Using where
|
||||
explain select * from t1 force index (a) where a=0 or a=2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range a a 4 NULL 4 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t1 range a a 4 NULL 4 Using where
|
||||
explain select * from t1 where c=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref c,c_2 c 5 const 1
|
||||
|
@ -1142,7 +1142,7 @@ qq
|
|||
*a *a*a *
|
||||
explain select * from t1 where v='a';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v,v_2 # 13 const # Using index condition
|
||||
1 SIMPLE t1 ref v,v_2 # 13 const # Using where
|
||||
select v,count(*) from t1 group by v limit 10;
|
||||
v count(*)
|
||||
a 1
|
||||
|
@ -1318,7 +1318,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t1 ref v v 303 const # Using where; Using index
|
||||
explain select * from t1 where v='a';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref v v 303 const # Using index condition
|
||||
1 SIMPLE t1 ref v v 303 const # Using where
|
||||
select v,count(*) from t1 group by v limit 10;
|
||||
v count(*)
|
||||
a 1
|
||||
|
|
|
@ -258,7 +258,7 @@ INSERT INTO t1 VALUES (1,NULL),(2,NULL),(3,1),(4,2),(5,NULL),(6,NULL),(7,3),(8,4
|
|||
INSERT INTO t2 VALUES (1,NULL),(2,NULL),(3,1),(4,2),(5,NULL),(6,NULL),(7,3),(8,4),(9,NULL),(10,NULL);
|
||||
explain select id from t1 where uniq_id is null;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref idx1 idx1 5 const 5 Using index condition
|
||||
1 SIMPLE t1 ref idx1 idx1 5 const 5 Using where
|
||||
explain select id from t1 where uniq_id =1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 const idx1 idx1 5 const 1
|
||||
|
|
|
@ -514,7 +514,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
EXPLAIN SELECT t1.gid, t3.uid from t1, t3 where t1.skr = t3.uid order by t1.gid,t3.skr;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using temporary; Using filesort
|
||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 2 test.t1.skr 1 Using index condition
|
||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 2 test.t1.skr 1 Using where
|
||||
drop table t1,t2,t3;
|
||||
CREATE TABLE t1 (
|
||||
`titre` char(80) NOT NULL default '',
|
||||
|
|
|
@ -465,9 +465,9 @@ def key 253 64 7 Y 0 31 8
|
|||
def key_len 253 4096 1 Y 0 31 8
|
||||
def ref 253 2048 0 Y 0 31 8
|
||||
def rows 8 10 1 Y 32928 0 63
|
||||
def Extra 253 255 57 N 1 31 8
|
||||
def Extra 253 255 27 N 1 31 8
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 Using index condition; Rowid-ordered scan; Using filesort
|
||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 Using where; Using filesort
|
||||
drop table if exists t2;
|
||||
create table t2 (id smallint, name varchar(20)) ;
|
||||
prepare stmt1 from ' insert into t2 values(?, ?) ' ;
|
||||
|
|
|
@ -277,7 +277,7 @@ INSERT INTO t1 VALUES
|
|||
(33,5),(33,5),(33,5),(33,5),(34,5),(35,5);
|
||||
EXPLAIN SELECT * FROM t1 WHERE a IN(1,2) AND b=5;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range a,b a 5 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||
1 SIMPLE t1 range a,b a 5 NULL 2 Using where
|
||||
SELECT * FROM t1 WHERE a IN(1,2) AND b=5;
|
||||
a b
|
||||
DROP TABLE t1;
|
||||
|
@ -922,7 +922,7 @@ INSERT INTO t1 VALUES
|
|||
('A2','2005-12-01 08:00:00',1000);
|
||||
EXPLAIN SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-01 24:00:00';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref PRIMARY PRIMARY 20 const 2 Using index condition
|
||||
1 SIMPLE t1 ref PRIMARY PRIMARY 20 const 2 Using where
|
||||
SELECT * FROM t1 WHERE item='A1' AND started<='2005-12-01 24:00:00';
|
||||
item started price
|
||||
Warnings:
|
||||
|
|
|
@ -144,12 +144,12 @@ explain
|
|||
select * from t1,t2 where t1.b=t2.c and d <= 100;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where
|
||||
1 SIMPLE t2 ref idx idx 5 test.t1.b 2 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||
1 SIMPLE t2 ref idx idx 5 test.t1.b 2 Using where
|
||||
select * from t1,t2 where t1.b=t2.c and d <= 100;
|
||||
a b c d v
|
||||
3 30 30 100 101
|
||||
4 20 20 100 101
|
||||
1 20 20 100 101
|
||||
3 30 30 100 101
|
||||
set join_cache_level=default;
|
||||
drop table t1, t2;
|
||||
create table t1 (a bigint, b bigint as (a > '2'));
|
||||
|
|
|
@ -44,7 +44,7 @@ a b c
|
|||
1 -1 -1
|
||||
explain select * from t3 where c>=-1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 range c c 5 NULL 1 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t3 range c c 5 NULL 1 Using where
|
||||
# select_type=SIMPLE, type=ref
|
||||
select * from t1,t3 where t1.c=t3.c and t3.c=-1;
|
||||
a b c a b c
|
||||
|
@ -136,11 +136,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
# SELECT * FROM tbl_name WHERE <vcol expr>
|
||||
select * from t3 where c >= -2;
|
||||
a b c
|
||||
1 -1 -1
|
||||
2 -2 -2
|
||||
1 -1 -1
|
||||
explain select * from t3 where c >= -2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 range c c 5 NULL 1 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t3 range c c 5 NULL 1 Using where
|
||||
# SELECT * FROM tbl_name WHERE <non-vcol expr>
|
||||
select * from t3 where a between 1 and 2;
|
||||
a b c
|
||||
|
@ -160,11 +160,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
# SELECT * FROM tbl_name WHERE <indexed vcol expr>
|
||||
select * from t3 where c between -2 and -1;
|
||||
a b c
|
||||
1 -1 -1
|
||||
2 -2 -2
|
||||
1 -1 -1
|
||||
explain select * from t3 where c between -2 and -1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 range c c 5 NULL 1 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t3 range c c 5 NULL 1 Using where
|
||||
# SELECT * FROM tbl_name WHERE <non-vcol expr> ORDER BY <non-indexed vcol>
|
||||
select * from t3 where a between 1 and 2 order by b;
|
||||
a b c
|
||||
|
@ -204,7 +204,7 @@ a b c
|
|||
1 -1 -1
|
||||
explain select * from t3 where c between -2 and -1 order by b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 range c c 5 NULL 1 Using index condition; Rowid-ordered scan; Using filesort
|
||||
1 SIMPLE t3 range c c 5 NULL 1 Using where; Using filesort
|
||||
# SELECT * FROM tbl_name WHERE <non-indexed vcol expr> ORDER BY <indexed vcol>
|
||||
select * from t3 where b between -2 and -1 order by c;
|
||||
a b c
|
||||
|
@ -220,7 +220,7 @@ a b c
|
|||
1 -1 -1
|
||||
explain select * from t3 where c between -2 and -1 order by c;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 range c c 5 NULL 1 Using index condition
|
||||
1 SIMPLE t3 range c c 5 NULL 1 Using where
|
||||
# SELECT sum(<non-indexed vcol>) FROM tbl_name GROUP BY <non-indexed vcol>
|
||||
select sum(b) from t1 group by b;
|
||||
sum(b)
|
||||
|
|
|
@ -44,7 +44,7 @@ a b c
|
|||
1 -1 -1
|
||||
explain select * from t3 where c>=-1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 range c c 5 NULL 2 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t3 range c c 5 NULL 2 Using where
|
||||
# select_type=SIMPLE, type=ref
|
||||
select * from t1,t3 where t1.c=t3.c and t3.c=-1;
|
||||
a b c a b c
|
||||
|
@ -140,15 +140,15 @@ a b c
|
|||
1 -1 -1
|
||||
explain select * from t3 where c >= -2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 range c c 5 NULL 2 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t3 range c c 5 NULL 2 Using where
|
||||
# SELECT * FROM tbl_name WHERE <non-vcol expr>
|
||||
select * from t3 where a between 1 and 2;
|
||||
a b c
|
||||
2 -2 -2
|
||||
1 -1 -1
|
||||
2 -2 -2
|
||||
explain select * from t3 where a between 1 and 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t3 range PRIMARY PRIMARY 4 NULL 1 Using where
|
||||
# SELECT * FROM tbl_name WHERE <non-indexed vcol expr>
|
||||
select * from t3 where b between -2 and -1;
|
||||
a b c
|
||||
|
@ -164,7 +164,7 @@ a b c
|
|||
1 -1 -1
|
||||
explain select * from t3 where c between -2 and -1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 range c c 5 NULL 1 Using index condition; Rowid-ordered scan
|
||||
1 SIMPLE t3 range c c 5 NULL 1 Using where
|
||||
# SELECT * FROM tbl_name WHERE <non-vcol expr> ORDER BY <indexed vcol>
|
||||
select * from t3 where a between 1 and 2 order by c;
|
||||
a b c
|
||||
|
@ -172,7 +172,7 @@ a b c
|
|||
1 -1 -1
|
||||
explain select * from t3 where a between 1 and 2 order by c;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan; Using filesort
|
||||
1 SIMPLE t3 range PRIMARY PRIMARY 4 NULL 1 Using where; Using filesort
|
||||
# SELECT * FROM tbl_name WHERE <non-indexed vcol expr> ORDER BY <non-vcol>
|
||||
select * from t3 where b between -2 and -1 order by a;
|
||||
a b c
|
||||
|
@ -188,7 +188,7 @@ a b c
|
|||
2 -2 -2
|
||||
explain select * from t3 where c between -2 and -1 order by a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 range c c 5 NULL 1 Using index condition; Rowid-ordered scan; Using filesort
|
||||
1 SIMPLE t3 range c c 5 NULL 1 Using where; Using filesort
|
||||
# SELECT * FROM tbl_name WHERE <non-indexed vcol expr> ORDER BY <non-indexed vcol>
|
||||
select * from t3 where b between -2 and -1 order by b;
|
||||
a b c
|
||||
|
@ -204,7 +204,7 @@ a b c
|
|||
1 -1 -1
|
||||
explain select * from t3 where c between -2 and -1 order by b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 range c c 5 NULL 1 Using index condition; Rowid-ordered scan; Using filesort
|
||||
1 SIMPLE t3 range c c 5 NULL 1 Using where; Using filesort
|
||||
# SELECT * FROM tbl_name WHERE <non-indexed vcol expr> ORDER BY <indexed vcol>
|
||||
select * from t3 where b between -2 and -1 order by c;
|
||||
a b c
|
||||
|
@ -220,7 +220,7 @@ a b c
|
|||
1 -1 -1
|
||||
explain select * from t3 where c between -2 and -1 order by c;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 range c c 5 NULL 1 Using index condition
|
||||
1 SIMPLE t3 range c c 5 NULL 1 Using where
|
||||
# SELECT sum(<non-indexed vcol>) FROM tbl_name GROUP BY <non-indexed vcol>
|
||||
select sum(b) from t1 group by b;
|
||||
sum(b)
|
||||
|
|
|
@ -15,6 +15,12 @@
|
|||
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
set @innodb_test_tmp=@@optimizer_switch;
|
||||
set optimizer_switch =
|
||||
if(@innodb_test_dont_touch_optimizer_switch,
|
||||
@@optimizer_switch,
|
||||
'mrr=on,mrr_sort_keys=on,index_condition_pushdown=on');
|
||||
|
||||
# Save the original values of some variables in order to be able to
|
||||
# estimate how much they have changed during the tests. Previously this
|
||||
# test assumed that e.g. rows_deleted is 0 here and after deleting 23
|
||||
|
@ -2549,6 +2555,8 @@ SET GLOBAL innodb_thread_concurrency = @innodb_thread_concurrency_orig;
|
|||
|
||||
-- enable_query_log
|
||||
|
||||
set optimizer_switch=@innodb_test_tmp;
|
||||
|
||||
#######################################################################
|
||||
# #
|
||||
# Please, DO NOT TOUCH this file as well as the innodb.result file. #
|
||||
|
|
|
@ -7,7 +7,11 @@
|
|||
set @save_storage_engine= @@storage_engine;
|
||||
set storage_engine=InnoDB;
|
||||
|
||||
set @innodb_icp_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
--source include/icp_tests.inc
|
||||
|
||||
set optimizer_switch=@innodb_icp_tmp;
|
||||
set storage_engine= @save_storage_engine;
|
||||
|
||||
|
|
|
@ -7,6 +7,9 @@ drop table if exists t1,t2,t3,t4;
|
|||
set @save_storage_engine= @@storage_engine;
|
||||
set storage_engine=InnoDB;
|
||||
|
||||
set @innodb_mrr_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
--source include/mrr_tests.inc
|
||||
|
||||
set storage_engine= @save_storage_engine;
|
||||
|
@ -454,4 +457,5 @@ select count(*) from (
|
|||
) X;
|
||||
|
||||
set join_cache_level=@_save_join_cache_level;
|
||||
set optimizer_switch= @innodb_mrr_tmp;
|
||||
drop table t1;
|
||||
|
|
|
@ -17,6 +17,9 @@
|
|||
drop table if exists t0,t1,t2,t3;
|
||||
--enable_warnings
|
||||
|
||||
set @innodb_mrr_cpk_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
set @save_join_cache_level=@@join_cache_level;
|
||||
set join_cache_level=6;
|
||||
|
||||
|
@ -133,5 +136,6 @@ drop table t1,t2;
|
|||
|
||||
set @@join_cache_level= @save_join_cache_level;
|
||||
set storage_engine=@save_storage_engine;
|
||||
set optimizer_switch=@innodb_mrr_cpk_tmp;
|
||||
drop table t0;
|
||||
|
||||
|
|
10
mysql-test/t/innodb_no_mrricp.test
Normal file
10
mysql-test/t/innodb_no_mrricp.test
Normal file
|
@ -0,0 +1,10 @@
|
|||
|
||||
set @innodb_with_mrricp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
set @innodb_test_dont_touch_optimizer_switch=1;
|
||||
|
||||
--source t/innodb.test
|
||||
|
||||
set @innodb_test_dont_touch_optimizer_switch=NULL;
|
||||
set optimizer_switch=@innodb_with_mrricp;
|
||||
|
|
@ -7,7 +7,9 @@ set @save_optimizer_switch=@@optimizer_switch;
|
|||
set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on';
|
||||
set @@optimizer_switch='semijoin_with_cache=on';
|
||||
set @@optimizer_switch='outer_join_with_cache=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
set @local_join_cache_test_optimizer_switch_default=@@optimizer_switch;
|
||||
set names utf8;
|
||||
|
||||
CREATE DATABASE world;
|
||||
|
@ -2981,7 +2983,7 @@ SELECT * FROM t1,t2
|
|||
WHERE t1.f1 = t2.f4 AND (t1.f3 = 1 AND t2.f3 = 4 OR t1.f3 = 2 AND t2.f3 = 6);
|
||||
|
||||
SET SESSION join_cache_level = DEFAULT;
|
||||
SET SESSION optimizer_switch = DEFAULT;
|
||||
SET SESSION optimizer_switch = @local_join_cache_test_optimizer_switch_default;
|
||||
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
|
@ -3007,7 +3009,7 @@ EXPLAIN SELECT * FROM t1,t2
|
|||
WHERE t2.f3 = t1.f2 AND t1.f1 IN (9, 0, 100) ORDER BY t1.f2 LIMIT 1;
|
||||
SELECT * FROM t1,t2
|
||||
WHERE t2.f3 = t1.f2 AND t1.f1 IN (9, 0 ,100) ORDER BY t1.f2 LIMIT 1;
|
||||
SET SESSION optimizer_switch = DEFAULT;
|
||||
SET SESSION optimizer_switch = @local_join_cache_test_optimizer_switch_default;
|
||||
|
||||
SET SESSION optimizer_switch = 'index_condition_pushdown=on';
|
||||
EXPLAIN SELECT * FROM t1,t2
|
||||
|
@ -3015,7 +3017,7 @@ EXPLAIN SELECT * FROM t1,t2
|
|||
SELECT * FROM t1,t2
|
||||
WHERE t2.f3 = t1.f2 AND t1.f1 IN (9, 0 ,100) ORDER BY t1.f2 LIMIT 1;
|
||||
|
||||
SET SESSION optimizer_switch = DEFAULT;
|
||||
SET SESSION optimizer_switch = @local_join_cache_test_optimizer_switch_default;
|
||||
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
|
@ -3134,7 +3136,5 @@ SET SESSION join_cache_level = DEFAULT;
|
|||
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
SET SESSION optimizer_switch=default;
|
||||
|
||||
# this must be the last command in the file
|
||||
set @@optimizer_switch=@save_optimizer_switch;
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
set @save_optimizer_switch_jcl6=@@optimizer_switch;
|
||||
set @@optimizer_switch='semijoin_with_cache=on';
|
||||
set @@optimizer_switch='outer_join_with_cache=on';
|
||||
set @@optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
set join_cache_level=6;
|
||||
show variables like 'join_cache_level';
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
set @save_optimizer_switch_jcl6=@@optimizer_switch;
|
||||
set @@optimizer_switch='semijoin_with_cache=on';
|
||||
set @@optimizer_switch='outer_join_with_cache=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
set join_cache_level=6;
|
||||
show variables like 'join_cache_level';
|
||||
|
|
|
@ -6,8 +6,12 @@
|
|||
|
||||
set @save_storage_engine= @@storage_engine;
|
||||
set storage_engine=Maria;
|
||||
set @maria_icp_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
--source include/icp_tests.inc
|
||||
|
||||
set storage_engine= @save_storage_engine;
|
||||
set optimizer_switch=@maria_icp_tmp;
|
||||
|
||||
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
drop table if exists t1,t2,t3,t4;
|
||||
--enable_warnings
|
||||
|
||||
set @maria_mrr_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
set @mrr_buffer_size_save= @@mrr_buffer_size;
|
||||
|
||||
set @save_storage_engine= @@storage_engine;
|
||||
|
@ -201,4 +204,6 @@ WHERE
|
|||
|
||||
set join_cache_level=@_save_join_cache_level;
|
||||
set join_buffer_size=@_save_join_buffer_size;
|
||||
set optimizer_switch=@maria_mrr_tmp;
|
||||
|
||||
drop table t1;
|
||||
|
|
238
mysql-test/t/mrr_icp_extra.test
Normal file
238
mysql-test/t/mrr_icp_extra.test
Normal file
|
@ -0,0 +1,238 @@
|
|||
|
||||
set @mrr_icp_extra_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
SET NAMES latin1;
|
||||
CREATE TABLE t1
|
||||
(s1 char(10) COLLATE latin1_german1_ci,
|
||||
s2 char(10) COLLATE latin1_swedish_ci,
|
||||
KEY(s1),
|
||||
KEY(s2));
|
||||
|
||||
INSERT INTO t1 VALUES ('a','a');
|
||||
INSERT INTO t1 VALUES ('b','b');
|
||||
INSERT INTO t1 VALUES ('c','c');
|
||||
INSERT INTO t1 VALUES ('d','d');
|
||||
INSERT INTO t1 VALUES ('e','e');
|
||||
INSERT INTO t1 VALUES ('f','f');
|
||||
INSERT INTO t1 VALUES ('g','g');
|
||||
INSERT INTO t1 VALUES ('h','h');
|
||||
INSERT INTO t1 VALUES ('i','i');
|
||||
INSERT INTO t1 VALUES ('j','j');
|
||||
|
||||
EXPLAIN SELECT * FROM t1 WHERE s1='a';
|
||||
EXPLAIN SELECT * FROM t1 WHERE s2='a';
|
||||
EXPLAIN SELECT * FROM t1 WHERE s1='a' COLLATE latin1_german1_ci;
|
||||
EXPLAIN SELECT * FROM t1 WHERE s2='a' COLLATE latin1_german1_ci;
|
||||
|
||||
EXPLAIN SELECT * FROM t1 WHERE s1 BETWEEN 'a' AND 'b' COLLATE latin1_german1_ci;
|
||||
EXPLAIN SELECT * FROM t1 WHERE s2 BETWEEN 'a' AND 'b' COLLATE latin1_german1_ci;
|
||||
|
||||
EXPLAIN SELECT * FROM t1 WHERE s1 IN ('a','b' COLLATE latin1_german1_ci);
|
||||
EXPLAIN SELECT * FROM t1 WHERE s2 IN ('a','b' COLLATE latin1_german1_ci);
|
||||
|
||||
EXPLAIN SELECT * FROM t1 WHERE s1 LIKE 'a' COLLATE latin1_german1_ci;
|
||||
EXPLAIN SELECT * FROM t1 WHERE s2 LIKE 'a' COLLATE latin1_german1_ci;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t2 (a varchar(32), b int(11), c float, d double,
|
||||
UNIQUE KEY a (a,b,c), KEY b (b), KEY c (c));
|
||||
CREATE TABLE t1 (a varchar(32), b char(3), UNIQUE KEY a (a,b), KEY b (b));
|
||||
CREATE TABLE t3 (a varchar(32), b char(3), UNIQUE KEY a (a,b));
|
||||
INSERT INTO t3 SELECT * FROM t1;
|
||||
EXPLAIN
|
||||
SELECT d FROM t1, t2
|
||||
WHERE t2.b=14 AND t2.a=t1.a AND 5.1<t2.c AND t1.b='DE'
|
||||
ORDER BY t2.c LIMIT 1;
|
||||
SELECT d FROM t1, t2
|
||||
WHERE t2.b=14 AND t2.a=t1.a AND 5.1<t2.c AND t1.b='DE'
|
||||
ORDER BY t2.c LIMIT 1;
|
||||
|
||||
DROP TABLE t1,t2,t3;
|
||||
|
||||
--echo #
|
||||
--echo #
|
||||
create table t1(a int, b int, index(b));
|
||||
insert into t1 values (2, 1), (1, 1), (4, NULL), (3, NULL), (6, 2), (5, 2);
|
||||
explain select * from t1 where b=1 or b is null order by a;
|
||||
select * from t1 where b=1 or b is null order by a;
|
||||
explain select * from t1 where b=2 or b is null order by a;
|
||||
select * from t1 where b=2 or b is null order by a;
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo #
|
||||
CREATE TABLE t1 (
|
||||
FieldKey varchar(36) NOT NULL default '',
|
||||
LongVal bigint(20) default NULL,
|
||||
StringVal mediumtext,
|
||||
KEY FieldKey (FieldKey),
|
||||
KEY LongField (FieldKey,LongVal),
|
||||
KEY StringField (FieldKey,StringVal(32))
|
||||
);
|
||||
INSERT INTO t1 VALUES ('0',3,'0'),('0',2,'1'),('0',1,'2'),('1',2,'1'),('1',1,'3'), ('1',0,'2'),('2',3,'0'),('2',2,'1'),('2',1,'2'),('2',3,'0'),('2',2,'1'),('2',1,'2'),('3',2,'1'),('3',1,'2'),('3','3','3');
|
||||
EXPLAIN SELECT * FROM t1 IGNORE INDEX (LongField, StringField) WHERE FieldKey > '2' ORDER BY LongVal;
|
||||
EXPLAIN SELECT * FROM t1 IGNORE INDEX (FieldKey, LongField) WHERE FieldKey > '2' ORDER BY LongVal;
|
||||
SELECT * FROM t1 WHERE FieldKey > '2' ORDER BY LongVal;
|
||||
DROP TABLE t1;
|
||||
--echo #
|
||||
--echo #
|
||||
CREATE TABLE t1 (a int not null, b int, c int, key(b), key(c), key(a,b), key(c,a));
|
||||
INSERT into t1 values (0, null, 0), (0, null, 1), (0, null, 2), (0, null,3), (1,1,4);
|
||||
create table t2 (a int not null, b int, c int, key(b), key(c), key(a));
|
||||
INSERT into t2 values (1,1,1), (2,2,2);
|
||||
optimize table t1;
|
||||
explain select * from t1 force index (a) where a=0 or a=2;
|
||||
select * from t1 force index (a) where a=0 or a=2;
|
||||
drop table t1;
|
||||
--echo #
|
||||
--echo #
|
||||
create table t1
|
||||
(
|
||||
pk1 int not null,
|
||||
pk2 int not null,
|
||||
|
||||
key1 int not null,
|
||||
key2 int not null,
|
||||
|
||||
pktail1ok int not null,
|
||||
pktail2ok int not null,
|
||||
pktail3bad int not null,
|
||||
pktail4bad int not null,
|
||||
pktail5bad int not null,
|
||||
|
||||
pk2copy int not null,
|
||||
badkey int not null,
|
||||
|
||||
filler1 char (200),
|
||||
filler2 char (200),
|
||||
key (key1),
|
||||
key (key2),
|
||||
|
||||
/* keys with tails from CPK members */
|
||||
key (pktail1ok, pk1),
|
||||
key (pktail2ok, pk1, pk2),
|
||||
key (pktail3bad, pk2, pk1),
|
||||
key (pktail4bad, pk1, pk2copy),
|
||||
key (pktail5bad, pk1, pk2, pk2copy),
|
||||
|
||||
primary key (pk1, pk2)
|
||||
);
|
||||
|
||||
--disable_query_log
|
||||
set autocommit=0;
|
||||
let $1=10000;
|
||||
while ($1)
|
||||
{
|
||||
eval insert into t1 values ($1 div 10,$1 mod 100, $1/100,$1/100, $1/100,$1/100,$1/100,$1/100,$1/100, $1 mod 100, $1/1000,'filler-data-$1','filler2');
|
||||
dec $1;
|
||||
}
|
||||
set autocommit=1;
|
||||
--enable_query_log
|
||||
explain select * from t1 where pk1 = 1 and pk2 < 80 and key1=0;
|
||||
select * from t1 where pk1 = 1 and pk2 < 80 and key1=0;
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo #
|
||||
CREATE TABLE t1 (
|
||||
f1 int,
|
||||
f4 varchar(32),
|
||||
f5 int,
|
||||
PRIMARY KEY (f1),
|
||||
KEY (f4)
|
||||
);
|
||||
INSERT INTO t1 VALUES
|
||||
(5,'H',1), (9,'g',0), (527,'i',0), (528,'y',1), (529,'S',6),
|
||||
(530,'m',7), (531,'b',2), (532,'N',1), (533,'V',NULL), (534,'l',1),
|
||||
(535,'M',0), (536,'w',1), (537,'j',5), (538,'l',0), (539,'n',2),
|
||||
(540,'m',2), (541,'r',2), (542,'l',2), (543,'h',3),(544,'o',0),
|
||||
(956,'h',0), (957,'g',0), (958,'W',5), (959,'s',3), (960,'w',0),
|
||||
(961,'q',0), (962,'e',NULL), (963,'u',7), (964,'q',1), (965,'N',NULL),
|
||||
(966,'e',0), (967,'t',3), (968,'e',6), (969,'f',NULL), (970,'j',0),
|
||||
(971,'s',3), (972,'I',0), (973,'h',4), (974,'g',1), (975,'s',0),
|
||||
(976,'r',3), (977,'x',1), (978,'v',8), (979,'j',NULL), (980,'z',7),
|
||||
(981,'t',9), (982,'j',5), (983,'u',NULL), (984,'g',6), (985,'w',1),
|
||||
(986,'h',1), (987,'v',0), (988,'v',0), (989,'c',2), (990,'b',7),
|
||||
(991,'z',0), (992,'M',1), (993,'u',2), (994,'r',2), (995,'b',4),
|
||||
(996,'A',2), (997,'u',0), (998,'a',0), (999,'j',2), (1,'I',2);
|
||||
EXPLAIN
|
||||
SELECT * FROM t1
|
||||
WHERE (f1 < 535 OR f1 > 985) AND ( f4='r' OR f4 LIKE 'a%' ) ;
|
||||
SELECT * FROM t1
|
||||
WHERE (f1 < 535 OR f1 > 985) AND ( f4='r' OR f4 LIKE 'a%' ) ;
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo #
|
||||
--source include/varchar.inc
|
||||
|
||||
--echo #
|
||||
--echo #
|
||||
--disable_warnings
|
||||
drop database if exists world;
|
||||
--enable_warnings
|
||||
CREATE DATABASE world;
|
||||
|
||||
use world;
|
||||
|
||||
--source include/world_schema.inc
|
||||
|
||||
--disable_query_log
|
||||
--disable_result_log
|
||||
--disable_warnings
|
||||
--source include/world.inc
|
||||
--enable_warnings
|
||||
--enable_result_log
|
||||
--enable_query_log
|
||||
|
||||
SELECT * FROM City
|
||||
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
||||
AND (Population > 101000 AND Population < 102000);
|
||||
|
||||
--replace_column 9 #
|
||||
explain
|
||||
SELECT * FROM City
|
||||
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
||||
AND (Population > 101000 AND Population < 102000);
|
||||
|
||||
--replace_column 9 #
|
||||
explain
|
||||
SELECT * FROM City
|
||||
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
||||
(Name BETWEEN 'P' AND 'Pb' AND (Population > 101000 AND Population < 110000));
|
||||
|
||||
SELECT * FROM City
|
||||
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
||||
(Name BETWEEN 'P' AND 'Pb' AND (Population > 101000 AND Population < 110000));
|
||||
|
||||
SELECT * FROM City
|
||||
WHERE Name LIKE 'M%' AND Population > 7000000;
|
||||
|
||||
--replace_column 9 #
|
||||
explain
|
||||
SELECT * FROM City
|
||||
WHERE Name LIKE 'M%' AND Population > 7000000;
|
||||
|
||||
--replace_column 6 # 7 # 9 #
|
||||
explain
|
||||
SELECT * FROM City
|
||||
WHERE Name BETWEEN 'G' AND 'K' AND Population > 500000 AND Country LIKE 'C%';
|
||||
SELECT * FROM City
|
||||
WHERE Name BETWEEN 'G' AND 'K' AND Population > 500000 AND Country LIKE 'C%';
|
||||
|
||||
--replace_column 6 # 7 # 9 #
|
||||
explain
|
||||
SELECT * FROM City
|
||||
WHERE Name BETWEEN 'G' AND 'J' AND Population > 500000 AND Country LIKE 'C%';
|
||||
SELECT * FROM City
|
||||
WHERE Name BETWEEN 'G' AND 'J' AND Population > 500000 AND Country LIKE 'C%';
|
||||
|
||||
drop database world;
|
||||
use test;
|
||||
|
||||
set @mrr_icp_extra_tmp=@@optimizer_switch;
|
||||
|
|
@ -4,6 +4,9 @@
|
|||
|
||||
--source include/icp_tests.inc
|
||||
|
||||
set @myisam_icp_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t0, t1, t1i, t1m;
|
||||
--enable_warnings
|
||||
|
@ -192,3 +195,4 @@ drop table if exists t0, t1, t1i, t1m;
|
|||
drop table t0, t1, t1i, t1m;
|
||||
|
||||
--enable_parsing
|
||||
set optimizer_switch=@myisam_icp_tmp;
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
drop table if exists t0, t1, t2, t3;
|
||||
--enable_warnings
|
||||
|
||||
set @myisam_mrr_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
set @mrr_buffer_size_save= @@mrr_buffer_size;
|
||||
set mrr_buffer_size=79;
|
||||
|
||||
|
@ -216,5 +218,6 @@ where
|
|||
|
||||
set join_cache_level= @save_join_cache_level;
|
||||
set join_buffer_size= @save_join_buffer_size;
|
||||
set optimizer_switch= @myisam_mrr_tmp;
|
||||
drop table t1;
|
||||
|
||||
|
|
7
mysql-test/t/range_mrr_icp.test
Normal file
7
mysql-test/t/range_mrr_icp.test
Normal file
|
@ -0,0 +1,7 @@
|
|||
set @mrr_icp_extra_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
--source t/range.test
|
||||
|
||||
set optimizer_switch=@mrr_icp_extra_tmp;
|
||||
|
|
@ -4146,7 +4146,8 @@ INSERT INTO t3 VALUES
|
|||
(4,'z'), (3,'zzz'), (5,'zzzzz'), (3,'z'), (4,'zzz'), (3,'zzzz'),
|
||||
(9,'zzzzz'), (2,'zzz'), (1,'zzzz'), (9,'zzz'), (1,'zzzz'), (5,'zzzzz'),
|
||||
(4,'zzz'), (3,'zzzz'), (5,'zzzz'), (3,'zzz'), (4,'zz'), (3,'zzzzz');
|
||||
|
||||
|
||||
set @tmp= @@optimizer_switch;
|
||||
SET SESSION optimizer_switch='index_condition_pushdown=off';
|
||||
|
||||
EXPLAIN SELECT * from t1,t2,t3 WHERE t3.a3=t1.a1 AND t2.a2=t1.a1;
|
||||
|
@ -4166,7 +4167,7 @@ SELECT * FROM t1,t2,t3
|
|||
WHERE t2.a2=t1.a1 AND t3.a3=t2.a2 AND
|
||||
LENGTH(CONCAT(CONCAT(t1.b1,t2.b2),t3.b3)) <= 7;
|
||||
|
||||
SET SESSION optimizer_switch=DEFAULT;
|
||||
SET SESSION optimizer_switch=@tmp;
|
||||
|
||||
DROP TABLE t1,t2,t3;
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
set @save_optimizer_switch_jcl6=@@optimizer_switch;
|
||||
set @@optimizer_switch='semijoin_with_cache=on';
|
||||
set @@optimizer_switch='outer_join_with_cache=on';
|
||||
set @@optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
set join_cache_level=6;
|
||||
show variables like 'join_cache_level';
|
||||
|
|
|
@ -15,6 +15,7 @@ drop view if exists v2;
|
|||
set @subselect_tmp=@@optimizer_switch;
|
||||
set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test,
|
||||
"semijoin=on,firstmatch=on,loosescan=on,partial_match_rowid_merge=off,partial_match_table_scan=off");
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
select (select 2);
|
||||
explain extended select (select 2);
|
||||
|
|
|
@ -9,7 +9,7 @@ drop table if exists t1, t2, t3, t4;
|
|||
--enable_warnings
|
||||
|
||||
set @subselect2_test_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='semijoin=on,firstmatch=on';
|
||||
set optimizer_switch='semijoin=on,firstmatch=on,mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
CREATE TABLE t1
|
||||
(
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
set @save_optimizer_switch=@@optimizer_switch;
|
||||
set @@optimizer_switch='semijoin_with_cache=on';
|
||||
set @@optimizer_switch='outer_join_with_cache=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
set join_cache_level=6;
|
||||
show variables like 'join_cache_level';
|
||||
|
|
|
@ -6,6 +6,7 @@ drop table if exists t1,t2,t3,t4,t5,t6;
|
|||
|
||||
set @subselect4_tmp= @@optimizer_switch;
|
||||
set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
--echo #
|
||||
--echo # Bug #46791: Assertion failed:(table->key_read==0),function unknown
|
||||
|
|
278
mysql-test/t/subselect_extra.test
Normal file
278
mysql-test/t/subselect_extra.test
Normal file
|
@ -0,0 +1,278 @@
|
|||
#
|
||||
# This file is for tests for other features that happen to use
|
||||
# subqueries. The idea is that one should be able to run
|
||||
#
|
||||
# ./mysql-test-run t/subselect*.test
|
||||
#
|
||||
# and get as much subquery testing as possible.
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2,t3,t4;
|
||||
--enable_warnings
|
||||
|
||||
set @subselect_extra_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on';
|
||||
|
||||
|
||||
--echo # From explain.test:
|
||||
--echo #
|
||||
--echo # Bug#37870: Usage of uninitialized value caused failed assertion.
|
||||
--echo #
|
||||
create table t1 (dt datetime not null, t time not null);
|
||||
create table t2 (dt datetime not null);
|
||||
insert into t1 values ('2001-01-01 1:1:1', '1:1:1'),
|
||||
('2001-01-01 1:1:1', '1:1:1');
|
||||
insert into t2 values ('2001-01-01 1:1:1'), ('2001-01-01 1:1:1');
|
||||
flush tables;
|
||||
EXPLAIN SELECT OUTR.dt FROM t1 AS OUTR WHERE OUTR.dt IN (SELECT INNR.dt FROM t2 AS INNR WHERE OUTR.dt IS NULL );
|
||||
flush tables;
|
||||
SELECT OUTR.dt FROM t1 AS OUTR WHERE OUTR.dt IN (SELECT INNR.dt FROM t2 AS INNR WHERE OUTR.dt IS NULL );
|
||||
flush tables;
|
||||
EXPLAIN SELECT OUTR.dt FROM t1 AS OUTR WHERE OUTR.dt IN ( SELECT INNR.dt FROM t2 AS INNR WHERE OUTR.t < '2005-11-13 7:41:31' );
|
||||
flush tables;
|
||||
SELECT OUTR.dt FROM t1 AS OUTR WHERE OUTR.dt IN ( SELECT INNR.dt FROM t2 AS INNR WHERE OUTR.t < '2005-11-13 7:41:31' );
|
||||
drop tables t1, t2;
|
||||
|
||||
--echo # From type_datetime.test:
|
||||
--echo #
|
||||
--echo # Bug #32694: NOT NULL table field in a subquery produces invalid results
|
||||
--echo #
|
||||
create table t1 (id int(10) not null, cur_date datetime not null);
|
||||
create table t2 (id int(10) not null, cur_date date not null);
|
||||
insert into t1 (id, cur_date) values (1, '2007-04-25 18:30:22');
|
||||
insert into t2 (id, cur_date) values (1, '2007-04-25');
|
||||
|
||||
explain extended
|
||||
select * from t1
|
||||
where id in (select id from t1 as x1 where (t1.cur_date is null));
|
||||
select * from t1
|
||||
where id in (select id from t1 as x1 where (t1.cur_date is null));
|
||||
|
||||
explain extended
|
||||
select * from t2
|
||||
where id in (select id from t2 as x1 where (t2.cur_date is null));
|
||||
select * from t2
|
||||
where id in (select id from t2 as x1 where (t2.cur_date is null));
|
||||
|
||||
insert into t1 (id, cur_date) values (2, '2007-04-26 18:30:22');
|
||||
insert into t2 (id, cur_date) values (2, '2007-04-26');
|
||||
|
||||
explain extended
|
||||
select * from t1
|
||||
where id in (select id from t1 as x1 where (t1.cur_date is null));
|
||||
select * from t1
|
||||
where id in (select id from t1 as x1 where (t1.cur_date is null));
|
||||
|
||||
explain extended
|
||||
select * from t2
|
||||
where id in (select id from t2 as x1 where (t2.cur_date is null));
|
||||
select * from t2
|
||||
where id in (select id from t2 as x1 where (t2.cur_date is null));
|
||||
|
||||
drop table t1,t2;
|
||||
|
||||
--echo #
|
||||
--echo # From group_min_max.test
|
||||
--echo #
|
||||
create table t1 (
|
||||
a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
|
||||
);
|
||||
|
||||
insert into t1 (a1, a2, b, c, d) values
|
||||
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
||||
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
||||
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
||||
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
||||
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
||||
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
||||
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
||||
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
||||
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
||||
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
||||
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
||||
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
|
||||
('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
|
||||
('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
|
||||
('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
|
||||
('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4'),
|
||||
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
||||
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
||||
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
||||
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
||||
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
||||
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
||||
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
||||
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
||||
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
||||
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
||||
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
||||
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
|
||||
('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
|
||||
('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
|
||||
('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
|
||||
('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4');
|
||||
|
||||
create index idx_t1_0 on t1 (a1);
|
||||
create index idx_t1_1 on t1 (a1,a2,b,c);
|
||||
create index idx_t1_2 on t1 (a1,a2,b);
|
||||
analyze table t1;
|
||||
|
||||
# t2 is the same as t1, but with some NULLs in the MIN/MAX column, and
|
||||
# one more nullable attribute
|
||||
|
||||
create table t2 (
|
||||
a1 char(64), a2 char(64) not null, b char(16), c char(16), d char(16), dummy char(64) default ' '
|
||||
);
|
||||
insert into t2 select * from t1;
|
||||
# add few rows with NULL's in the MIN/MAX column
|
||||
insert into t2 (a1, a2, b, c, d) values
|
||||
('a','a',NULL,'a777','xyz'),('a','a',NULL,'a888','xyz'),('a','a',NULL,'a999','xyz'),
|
||||
('a','a','a',NULL,'xyz'),
|
||||
('a','a','b',NULL,'xyz'),
|
||||
('a','b','a',NULL,'xyz'),
|
||||
('c','a',NULL,'c777','xyz'),('c','a',NULL,'c888','xyz'),('c','a',NULL,'c999','xyz'),
|
||||
('d','b','b',NULL,'xyz'),
|
||||
('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),
|
||||
('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),
|
||||
('a','a',NULL,'a777','xyz'),('a','a',NULL,'a888','xyz'),('a','a',NULL,'a999','xyz'),
|
||||
('a','a','a',NULL,'xyz'),
|
||||
('a','a','b',NULL,'xyz'),
|
||||
('a','b','a',NULL,'xyz'),
|
||||
('c','a',NULL,'c777','xyz'),('c','a',NULL,'c888','xyz'),('c','a',NULL,'c999','xyz'),
|
||||
('d','b','b',NULL,'xyz'),
|
||||
('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),
|
||||
('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz');
|
||||
|
||||
create index idx_t2_0 on t2 (a1);
|
||||
create index idx_t2_1 on t2 (a1,a2,b,c);
|
||||
create index idx_t2_2 on t2 (a1,a2,b);
|
||||
analyze table t2;
|
||||
|
||||
# Table t3 is the same as t1, but with smaller column lenghts.
|
||||
# This allows to test different branches of the cost computation procedure
|
||||
# when the number of keys per block are less than the number of keys in the
|
||||
# sub-groups formed by predicates over non-group attributes.
|
||||
|
||||
create table t3 (
|
||||
a1 char(1), a2 char(1), b char(1), c char(4) not null, d char(3), dummy char(1) default ' '
|
||||
);
|
||||
|
||||
insert into t3 (a1, a2, b, c, d) values
|
||||
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
||||
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
||||
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
||||
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
||||
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
||||
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
||||
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
||||
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
||||
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
||||
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
||||
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
||||
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
|
||||
insert into t3 (a1, a2, b, c, d) values
|
||||
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
||||
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
||||
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
||||
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
||||
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
||||
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
||||
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
||||
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
||||
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
||||
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
||||
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
||||
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
|
||||
insert into t3 (a1, a2, b, c, d) values
|
||||
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
||||
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
||||
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
||||
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
||||
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
||||
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
||||
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
||||
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
||||
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
||||
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
||||
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
||||
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
|
||||
insert into t3 (a1, a2, b, c, d) values
|
||||
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
||||
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
||||
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
||||
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
||||
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
||||
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
||||
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
||||
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
||||
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
||||
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
||||
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
||||
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
|
||||
|
||||
create index idx_t3_0 on t3 (a1);
|
||||
create index idx_t3_1 on t3 (a1,a2,b,c);
|
||||
create index idx_t3_2 on t3 (a1,a2,b);
|
||||
analyze table t3;
|
||||
|
||||
|
||||
explain select a1,a2,b,c,min(c), max(c) from t1
|
||||
where exists ( select * from t2
|
||||
where t2.c in (select c from t3 where t3.c > t1.b) and
|
||||
t2.c > 'b1' )
|
||||
group by a1,a2,b;
|
||||
|
||||
select a1,a2,b,c,min(c), max(c) from t1
|
||||
where exists ( select * from t2
|
||||
where t2.c in (select c from t3 where t3.c > t1.b) and
|
||||
t2.c > 'b1' )
|
||||
group by a1,a2,b;
|
||||
|
||||
explain select a1,a2,b,c,min(c), max(c) from t1
|
||||
where exists ( select * from t2
|
||||
where t2.c in (select c from t3 where t3.c > t1.c) and
|
||||
t2.c > 'b1' )
|
||||
group by a1,a2,b;
|
||||
|
||||
select a1,a2,b,c,min(c), max(c) from t1
|
||||
where exists ( select * from t2
|
||||
where t2.c in (select c from t3 where t3.c > t1.c) and
|
||||
t2.c > 'b1' )
|
||||
group by a1,a2,b;
|
||||
|
||||
drop table t1, t2, t3;
|
||||
|
||||
--echo #
|
||||
--echo # From group_by.test
|
||||
--echo #
|
||||
|
||||
--echo # Bug #21174: Index degrades sort performance and
|
||||
--echo # optimizer does not honor IGNORE INDEX.
|
||||
--echo # a.k.a WL3527.
|
||||
--echo #
|
||||
CREATE TABLE t1 (a INT, b INT,
|
||||
PRIMARY KEY (a),
|
||||
KEY i2(a,b));
|
||||
INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8);
|
||||
INSERT INTO t1 SELECT a + 8,b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 16,b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 32,b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 64,b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 128,b FROM t1 limit 16;
|
||||
ANALYZE TABLE t1;
|
||||
EXPLAIN SELECT 1 FROM t1 WHERE a IN
|
||||
(SELECT a FROM t1 USE INDEX (i2) IGNORE INDEX (i2));
|
||||
|
||||
CREATE TABLE t2 (a INT, b INT, KEY(a));
|
||||
INSERT INTO t2 VALUES (1, 1), (2, 2), (3,3), (4,4);
|
||||
EXPLAIN SELECT a, SUM(b) FROM t2 GROUP BY a LIMIT 2;
|
||||
EXPLAIN SELECT a, SUM(b) FROM t2 IGNORE INDEX (a) GROUP BY a LIMIT 2;
|
||||
|
||||
EXPLAIN SELECT 1 FROM t2 WHERE a IN
|
||||
(SELECT a FROM t1 USE INDEX (i2) IGNORE INDEX (i2));
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
|
||||
set optimizer_switch= @subselect_extra_tmp;
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
-- source include/have_innodb.inc
|
||||
|
||||
set @subselect_innodb_tmp=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2,t3;
|
||||
--enable_warnings
|
||||
|
@ -238,3 +240,6 @@ call p1();
|
|||
call p1();
|
||||
drop procedure p1;
|
||||
drop tables t1,t2,t3;
|
||||
|
||||
set optimizer_switch=@subselect_innodb_tmp;
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ set @subselect_mat_test_optimizer_switch_value='materialization=on,in_to_exists=
|
|||
set @subselect_mat_test_optimizer_switch_value=null;
|
||||
|
||||
set @@optimizer_switch='materialization=on,in_to_exists=off,semijoin=off';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
#
|
||||
# Test that the contents of the temp table of a materialized subquery is
|
||||
# cleaned up between PS re-executions.
|
||||
|
|
|
@ -13,6 +13,9 @@
|
|||
# switches, data distribution, available indexes, and typical queries.
|
||||
#
|
||||
|
||||
set @subselect_mat_cost=@@optimizer_switch;
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
|
||||
-- echo TEST GROUP 1:
|
||||
-- echo Typical cases of in-to-exists and materialization subquery strategies
|
||||
|
@ -415,3 +418,5 @@ drop database world;
|
|||
#(IN_EXIST transformation is applied to it)
|
||||
# inner subqyery is materialized while the outer subquery is not (
|
||||
#IN_EXIST transformation is applied to it)
|
||||
|
||||
set optimizer_switch=@subselect_mat_cost;
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
#
|
||||
select @@optimizer_switch like '%materialization=on%';
|
||||
set optimizer_switch='materialization=off';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
--source t/subselect.test
|
||||
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
# Run subselect.test without semi-join and materialization optimizations
|
||||
# (test in-to-exists)
|
||||
|
||||
set @optimizer_switch_for_subselect_test='materialization=off,semijoin=off';
|
||||
|
||||
set @optimizer_switch_for_subselect_test='materialization=off,semijoin=off,mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
--source t/subselect.test
|
||||
|
||||
set @optimizer_switch_for_subselect_test=null;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#
|
||||
# Run subselect.test without semi-join optimization (test materialize)
|
||||
#
|
||||
set @optimizer_switch_for_subselect_test='semijoin=off';
|
||||
set @optimizer_switch_for_subselect_test='semijoin=off,mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
--source t/subselect.test
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ drop procedure if exists p1;
|
|||
|
||||
set @subselect_sj_tmp= @@optimizer_switch;
|
||||
set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
# The 'default' value within the scope of this test:
|
||||
set @save_optimizer_switch=@@optimizer_switch;
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
set @subselect_sj2_tmp= @@optimizer_switch;
|
||||
set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
--disable_warnings
|
||||
drop table if exists t0, t1, t2, t3;
|
||||
drop view if exists v1;
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
set @save_optimizer_switch_jcl6=@@optimizer_switch;
|
||||
set @@optimizer_switch='semijoin_with_cache=on';
|
||||
set @@optimizer_switch='outer_join_with_cache=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
set join_cache_level=6;
|
||||
show variables like 'join_cache_level';
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
# Run subselect_sj2.test with subquery materialization.
|
||||
#
|
||||
set optimizer_switch='materialization=on';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
--source t/subselect_sj2.test
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ set @@optimizer_switch='semijoin=on,firstmatch=on,loosescan=on';
|
|||
set @@optimizer_switch='semijoin_with_cache=on';
|
||||
set @@optimizer_switch='outer_join_with_cache=on';
|
||||
set @@optimizer_switch='join_cache_hashed=off';
|
||||
set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on';
|
||||
|
||||
set join_cache_level=6;
|
||||
show variables like 'join_cache_level';
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue