mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Make EXPLAIN better at displaying MRR/BKA:
- "Using MRR" is no longer shown with range access. - Instead, both range and BKA accesses will show one of the following: = "Rowid-ordered scan" = "Key-ordered scan" = "Key-ordered Rowid-ordered scan" depending on whether DS-MRR implementation will do scan keys in order, rowids in order, or both. - The patch also introduces a way for other storage engines/MRR implementations to pass information to EXPLAIN output about the properties of employed MRR scans.
This commit is contained in:
@ -578,19 +578,19 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 ALL s2 NULL NULL NULL 10 Using where
|
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;
|
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
|
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; Using MRR
|
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;
|
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
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL s2 NULL NULL NULL 10 Using where
|
1 SIMPLE t1 ALL s2 NULL NULL NULL 10 Using where
|
||||||
EXPLAIN SELECT * FROM t1 WHERE s1 IN ('a','b' COLLATE latin1_german1_ci);
|
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
|
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; Using MRR
|
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);
|
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
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL s2 NULL NULL NULL 10 Using where
|
1 SIMPLE t1 ALL s2 NULL NULL NULL 10 Using where
|
||||||
EXPLAIN SELECT * FROM t1 WHERE s1 LIKE 'a' COLLATE latin1_german1_ci;
|
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
|
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; Using MRR
|
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;
|
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
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL s2 NULL NULL NULL 10 Using where
|
1 SIMPLE t1 ALL s2 NULL NULL NULL 10 Using where
|
||||||
|
@ -241,7 +241,7 @@ insert into t2 select C.a*2+1, 'yes' from t1 C;
|
|||||||
explain
|
explain
|
||||||
select * from t2 where a NOT IN (0, 2,4,6,8,10,12,14,16,18);
|
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
|
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; Using MRR
|
1 SIMPLE t2 range a a 5 NULL 12 Using index condition; Rowid-ordered scan
|
||||||
select * from t2 where a NOT IN (0, 2,4,6,8,10,12,14,16,18);
|
select * from t2 where a NOT IN (0, 2,4,6,8,10,12,14,16,18);
|
||||||
a filler
|
a filler
|
||||||
1 yes
|
1 yes
|
||||||
@ -256,10 +256,10 @@ a filler
|
|||||||
19 yes
|
19 yes
|
||||||
explain select * from t2 force index(a) where a NOT IN (2,2,2,2,2,2);
|
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
|
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; Using MRR
|
1 SIMPLE t2 range a a 5 NULL 912 Using index condition; Rowid-ordered scan
|
||||||
explain select * from t2 force index(a) where a <> 2;
|
explain select * from t2 force index(a) where a <> 2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t2 range a a 5 NULL 912 Using index condition; Rowid-ordered scan
|
||||||
drop table t2;
|
drop table t2;
|
||||||
create table t2 (a datetime, filler char(200), key(a));
|
create table t2 (a datetime, filler char(200), key(a));
|
||||||
insert into t2 select '2006-04-25 10:00:00' + interval C.a minute,
|
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: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');
|
'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
|
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; Using MRR
|
1 SIMPLE t2 range a a 9 NULL 18 Using index condition; Rowid-ordered scan
|
||||||
select * from t2 where a NOT IN (
|
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: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');
|
'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');
|
('barbas','1'), ('bazbazbay', '1'),('zz','1');
|
||||||
explain select * from t2 where a not in('foo','barbar', 'bazbazbaz');
|
explain select * from t2 where a not in('foo','barbar', 'bazbazbaz');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t2 range a a 13 NULL 7 Using index condition; Rowid-ordered scan
|
||||||
drop table t2;
|
drop table t2;
|
||||||
create table t2 (a decimal(10,5), filler char(200), key(a));
|
create table t2 (a decimal(10,5), filler char(200), key(a));
|
||||||
insert into t2 select 345.67890, 'no' from t1 A, t1 B;
|
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
|
explain
|
||||||
select * from t2 where a not in (345.67890, 43245.34, 64224.56344);
|
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
|
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; Using MRR
|
1 SIMPLE t2 range a a 7 NULL 7 Using index condition; Rowid-ordered scan
|
||||||
select * from t2 where a not in (345.67890, 43245.34, 64224.56344);
|
select * from t2 where a not in (345.67890, 43245.34, 64224.56344);
|
||||||
a filler
|
a filler
|
||||||
0.00000 1
|
0.00000 1
|
||||||
@ -630,16 +630,16 @@ INSERT INTO t1 (c_int) SELECT 0 FROM t1;
|
|||||||
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);
|
EXPLAIN SELECT * FROM t1 WHERE c_int IN (1, 2, 3);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range c_int c_int 4 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_int IN (NULL, 1, 2, 3);
|
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
|
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; Using MRR
|
1 SIMPLE t1 range c_int c_int 4 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_int IN (1, 2, 3);
|
EXPLAIN SELECT * FROM t1 WHERE c_int IN (1, 2, 3);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range c_int c_int 4 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_int IN (1, NULL, 2, NULL, 3, NULL);
|
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
|
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; Using MRR
|
1 SIMPLE t1 range c_int c_int 4 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_int IN (NULL);
|
EXPLAIN SELECT * FROM t1 WHERE c_int IN (NULL);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
@ -648,10 +648,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
|
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);
|
EXPLAIN SELECT * FROM t1 WHERE c_decimal IN (1, 2, 3);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range c_decimal c_decimal 3 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_decimal IN (NULL, 1, 2, 3);
|
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
|
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; Using MRR
|
1 SIMPLE t1 range c_decimal c_decimal 3 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_decimal IN (NULL);
|
EXPLAIN SELECT * FROM t1 WHERE c_decimal IN (NULL);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
@ -660,10 +660,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
|
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);
|
EXPLAIN SELECT * FROM t1 WHERE c_float IN (1, 2, 3);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range c_float c_float 4 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_float IN (NULL, 1, 2, 3);
|
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
|
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; Using MRR
|
1 SIMPLE t1 range c_float c_float 4 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_float IN (NULL);
|
EXPLAIN SELECT * FROM t1 WHERE c_float IN (NULL);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
@ -672,10 +672,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
|
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);
|
EXPLAIN SELECT * FROM t1 WHERE c_bit IN (1, 2, 3);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range c_bit c_bit 2 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_bit IN (NULL, 1, 2, 3);
|
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
|
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; Using MRR
|
1 SIMPLE t1 range c_bit c_bit 2 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_bit IN (NULL);
|
EXPLAIN SELECT * FROM t1 WHERE c_bit IN (NULL);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
@ -685,11 +685,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
EXPLAIN SELECT * FROM t1 WHERE c_date
|
EXPLAIN SELECT * FROM t1 WHERE c_date
|
||||||
IN ('2009-09-01', '2009-09-02', '2009-09-03');
|
IN ('2009-09-01', '2009-09-02', '2009-09-03');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range c_date c_date 3 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_date
|
EXPLAIN SELECT * FROM t1 WHERE c_date
|
||||||
IN (NULL, '2009-09-01', '2009-09-02', '2009-09-03');
|
IN (NULL, '2009-09-01', '2009-09-02', '2009-09-03');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range c_date c_date 3 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_date IN (NULL);
|
EXPLAIN SELECT * FROM t1 WHERE c_date IN (NULL);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
@ -699,11 +699,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
EXPLAIN SELECT * FROM t1 WHERE c_datetime
|
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');
|
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
|
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; Using MRR
|
1 SIMPLE t1 range c_datetime c_datetime 8 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_datetime
|
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');
|
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
|
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; Using MRR
|
1 SIMPLE t1 range c_datetime c_datetime 8 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_datetime IN (NULL);
|
EXPLAIN SELECT * FROM t1 WHERE c_datetime IN (NULL);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
@ -713,11 +713,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
EXPLAIN SELECT * FROM t1 WHERE c_timestamp
|
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');
|
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
|
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; Using MRR
|
1 SIMPLE t1 range c_timestamp c_timestamp 4 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_timestamp
|
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');
|
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
|
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; Using MRR
|
1 SIMPLE t1 range c_timestamp c_timestamp 4 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_timestamp IN (NULL);
|
EXPLAIN SELECT * FROM t1 WHERE c_timestamp IN (NULL);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
@ -726,10 +726,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
|
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);
|
EXPLAIN SELECT * FROM t1 WHERE c_year IN (1, 2, 3);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range c_year c_year 1 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_year IN (NULL, 1, 2, 3);
|
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
|
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; Using MRR
|
1 SIMPLE t1 range c_year c_year 1 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_year IN (NULL);
|
EXPLAIN SELECT * FROM t1 WHERE c_year IN (NULL);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
@ -738,10 +738,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
|
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');
|
EXPLAIN SELECT * FROM t1 WHERE c_char IN ('1', '2', '3');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range c_char c_char 10 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_char IN (NULL, '1', '2', '3');
|
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
|
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; Using MRR
|
1 SIMPLE t1 range c_char c_char 10 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c_char IN (NULL);
|
EXPLAIN SELECT * FROM t1 WHERE c_char IN (NULL);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
|
@ -74,12 +74,12 @@ EXPLAIN
|
|||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE Name LIKE 'M%' AND Population > 300000;
|
WHERE Name LIKE 'M%' AND Population > 300000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population,Name Name 35 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE Name LIKE 'M%' AND Population > 7000000;
|
WHERE Name LIKE 'M%' AND Population > 7000000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population,Name Population 4 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||||
SELECT * FROM City USE INDEX ()
|
SELECT * FROM City USE INDEX ()
|
||||||
WHERE Name LIKE 'C%' AND Population > 1000000;
|
WHERE Name LIKE 'C%' AND Population > 1000000;
|
||||||
ID Name Country Population
|
ID Name Country Population
|
||||||
@ -371,7 +371,7 @@ EXPLAIN
|
|||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE Name BETWEEN 'G' AND 'K' AND Population > 500000 AND Country LIKE 'C%';
|
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
|
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; Using MRR
|
1 SIMPLE City range Population,Country,Name Name 35 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||||
SELECT * FROM City USE INDEX ()
|
SELECT * FROM City USE INDEX ()
|
||||||
WHERE Name BETWEEN 'M' AND 'N' AND Population > 1000000 AND Country LIKE 'C%';
|
WHERE Name BETWEEN 'M' AND 'N' AND Population > 1000000 AND Country LIKE 'C%';
|
||||||
ID Name Country Population
|
ID Name Country Population
|
||||||
@ -462,7 +462,7 @@ EXPLAIN
|
|||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ID BETWEEN 501 AND 1000 AND Population > 700000 AND Country LIKE 'C%';
|
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
|
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; Using MRR
|
1 SIMPLE City range PRIMARY,Population,Country Population 4 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ID BETWEEN 1 AND 500 AND Population > 1000000 AND Country LIKE 'A%';
|
WHERE ID BETWEEN 1 AND 500 AND Population > 1000000 AND Country LIKE 'A%';
|
||||||
@ -472,7 +472,7 @@ EXPLAIN
|
|||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ID BETWEEN 2001 AND 2500 AND Population > 300000 AND Country LIKE 'H%';
|
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
|
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; Using MRR
|
1 SIMPLE City range PRIMARY,Population,Country Country 3 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ID BETWEEN 3701 AND 4000 AND Population > 1000000
|
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
|
WHERE ID BETWEEN 3001 AND 4000 AND Population > 600000
|
||||||
AND Country BETWEEN 'S' AND 'Z' ;
|
AND Country BETWEEN 'S' AND 'Z' ;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range PRIMARY,Population,Country Population 4 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||||
SELECT * FROM City USE INDEX ()
|
SELECT * FROM City USE INDEX ()
|
||||||
WHERE ID BETWEEN 501 AND 1000 AND Population > 700000 AND Country LIKE 'C%';
|
WHERE ID BETWEEN 501 AND 1000 AND Population > 700000 AND Country LIKE 'C%';
|
||||||
ID Name Country Population
|
ID Name Country Population
|
||||||
@ -733,7 +733,7 @@ EXPLAIN
|
|||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE Name BETWEEN 'G' AND 'J' AND Population > 500000 AND Country LIKE 'C%';
|
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
|
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; Using MRR
|
1 SIMPLE City range Population,Country,Name Name 35 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ID BETWEEN 1 AND 500 AND Population > 1000000 AND Country LIKE 'A%';
|
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
|
WHERE ID BETWEEN 3001 AND 4000 AND Population > 600000
|
||||||
AND Country BETWEEN 'S' AND 'Z';
|
AND Country BETWEEN 'S' AND 'Z';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range PRIMARY,Population,Country Population 4 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||||
SELECT * FROM City WHERE
|
SELECT * FROM City WHERE
|
||||||
Name LIKE 'C%' AND Population > 1000000;
|
Name LIKE 'C%' AND Population > 1000000;
|
||||||
ID Name Country Population
|
ID Name Country Population
|
||||||
@ -1028,7 +1028,7 @@ EXPLAIN
|
|||||||
SELECT * FROM t1
|
SELECT * FROM t1
|
||||||
WHERE (f1 < 535 OR f1 > 985) AND ( f4='r' OR f4 LIKE 'a%' ) ;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY,f4 f4 35 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||||
SELECT * FROM t1
|
SELECT * FROM t1
|
||||||
WHERE (f1 < 535 OR f1 > 985) AND ( f4='r' OR f4 LIKE 'a%' ) ;
|
WHERE (f1 < 535 OR f1 > 985) AND ( f4='r' OR f4 LIKE 'a%' ) ;
|
||||||
f1 f4 f5
|
f1 f4 f5
|
||||||
|
@ -21,7 +21,7 @@ Table Op Msg_type Msg_text
|
|||||||
test.t0 analyze status OK
|
test.t0 analyze status OK
|
||||||
explain select * from t0 where key1 < 3 or key1 > 1020;
|
explain select * from t0 where key1 < 3 or key1 > 1020;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t0 range i1 i1 4 NULL 78 Using index condition; Rowid-ordered scan
|
||||||
explain
|
explain
|
||||||
select * from t0 where key1 < 3 or key2 > 1020;
|
select * from t0 where key1 < 3 or key2 > 1020;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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
|
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;
|
explain select * from t0 where key2 = 45 or key1 <=> null;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t0 range i1,i2 i2 4 NULL 1 Using where; Rowid-ordered scan
|
||||||
explain select * from t0 where key2 = 45 or key1 is not null;
|
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
|
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
|
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
|
explain select * from t0,t1 where t0.key1 < 3 and
|
||||||
(t1.key1 = t0.key1 or t1.key8 = t0.key1);
|
(t1.key1 = t0.key1 or t1.key8 = t0.key1);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t0 range i1 i1 4 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE t1 ALL i1,i8 NULL NULL NULL 1024 Range checked for each record (index map: 0x81)
|
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
|
explain select * from t1 where key1=3 or key2=4
|
||||||
union select * from t1 where key1<4 or key3=5;
|
union select * from t1 where key1<4 or key3=5;
|
||||||
@ -1379,7 +1379,7 @@ primary key (pk1, pk2)
|
|||||||
);
|
);
|
||||||
explain select * from t1 where pk1 = 1 and pk2 < 80 and key1=0;
|
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
|
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; Using MRR
|
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;
|
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
|
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 19 0 0 0 0 0 0 0 19 0 filler-data-19 filler2
|
||||||
|
@ -1295,7 +1295,7 @@ count(*)
|
|||||||
623
|
623
|
||||||
explain select * from t1 where c between 1 and 2500;
|
explain select * from t1 where c between 1 and 2500;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range c c 5 NULL # Using index condition; Using MRR
|
1 SIMPLE t1 range c c 5 NULL # Using index condition; Rowid-ordered scan
|
||||||
update t1 set c=a;
|
update t1 set c=a;
|
||||||
explain select * from t1 where c between 1 and 2500;
|
explain select * from t1 where c between 1 and 2500;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
@ -184,7 +184,7 @@ explain
|
|||||||
select * from t4 where a IS NULL and b IS NULL and (c IS NULL or c='no-such-row1'
|
select * from t4 where a IS NULL and b IS NULL and (c IS NULL or c='no-such-row1'
|
||||||
or c='no-such-row2');
|
or c='no-such-row2');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t4 range idx1 idx1 29 NULL 16 Using index condition; Using MRR
|
1 SIMPLE t4 range idx1 idx1 29 NULL 16 Using index condition; Rowid-ordered scan
|
||||||
select * from t4 where a IS NULL and b IS NULL and (c IS NULL or c='no-such-row1'
|
select * from t4 where a IS NULL and b IS NULL and (c IS NULL or c='no-such-row1'
|
||||||
or c='no-such-row2');
|
or c='no-such-row2');
|
||||||
a b c filler
|
a b c filler
|
||||||
@ -206,7 +206,7 @@ NULL NULL NULL NULL-1
|
|||||||
explain
|
explain
|
||||||
select * from t4 where (a ='b-1' or a='bb-1') and b IS NULL and (c='c-1' or c='cc-2');
|
select * from t4 where (a ='b-1' or a='bb-1') and b IS NULL and (c='c-1' or c='cc-2');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t4 range idx1 idx1 29 NULL 32 Using index condition; Using MRR
|
1 SIMPLE t4 range idx1 idx1 29 NULL 32 Using index condition; Rowid-ordered scan
|
||||||
select * from t4 where (a ='b-1' or a='bb-1') and b IS NULL and (c='c-1' or c='cc-2');
|
select * from t4 where (a ='b-1' or a='bb-1') and b IS NULL and (c='c-1' or c='cc-2');
|
||||||
a b c filler
|
a b c filler
|
||||||
b-1 NULL c-1 NULL-15
|
b-1 NULL c-1 NULL-15
|
||||||
@ -309,7 +309,7 @@ from t1 A, t1 B, t1 C;
|
|||||||
explain
|
explain
|
||||||
select count(length(a) + length(filler)) from t2 where a>='a-1000-a' and a <'a-1001-a';
|
select count(length(a) + length(filler)) from t2 where a>='a-1000-a' and a <'a-1001-a';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 range a a 9 NULL 99 Using index condition; Using MRR
|
1 SIMPLE t2 range a a 9 NULL 99 Using index condition; Rowid-ordered scan
|
||||||
select count(length(a) + length(filler)) from t2 where a>='a-1000-a' and a <'a-1001-a';
|
select count(length(a) + length(filler)) from t2 where a>='a-1000-a' and a <'a-1001-a';
|
||||||
count(length(a) + length(filler))
|
count(length(a) + length(filler))
|
||||||
100
|
100
|
||||||
@ -319,7 +319,7 @@ filler char(10), key(d), primary key (a,b,c)) engine= innodb;
|
|||||||
insert into t2 select A.a, B.a, B.a, A.a, 'filler' from t1 A, t1 B;
|
insert into t2 select A.a, B.a, B.a, A.a, 'filler' from t1 A, t1 B;
|
||||||
explain select * from t2 force index (d) where d < 10;
|
explain select * from t2 force index (d) where d < 10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 range d d 5 NULL # Using index condition; Using MRR
|
1 SIMPLE t2 range d d 5 NULL # Using index condition; Rowid-ordered scan
|
||||||
drop table t2;
|
drop table t2;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
set @@mrr_buffer_size= @mrr_buffer_size_save;
|
set @@mrr_buffer_size= @mrr_buffer_size_save;
|
||||||
|
@ -25,7 +25,7 @@ This should use join buffer:
|
|||||||
explain select * from t1, t2 where t1.a=t2.a;
|
explain select * from t1, t2 where t1.a=t2.a;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
|
||||||
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 8 test.t2.a 1 Using join buffer (flat, BKA join)
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 8 test.t2.a 1 Using join buffer (flat, BKA join); Key-ordered scan
|
||||||
This output must be sorted by value of t1.a:
|
This output must be sorted by value of t1.a:
|
||||||
select * from t1, t2 where t1.a=t2.a;
|
select * from t1, t2 where t1.a=t2.a;
|
||||||
a b filler a
|
a b filler a
|
||||||
@ -47,7 +47,7 @@ insert into t2 values ('a-1010=A', 1010), ('a-1030=A', 1030), ('a-1020=A', 1020)
|
|||||||
explain select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
|
explain select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
|
||||||
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 28 test.t2.a,test.t2.b 1 Using join buffer (flat, BKA join)
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 28 test.t2.a,test.t2.b 1 Using join buffer (flat, BKA join); Key-ordered scan
|
||||||
select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
|
select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
|
||||||
a b filler a b
|
a b filler a b
|
||||||
a-1010=A 1010 filler a-1010=A 1010
|
a-1010=A 1010 filler a-1010=A 1010
|
||||||
@ -57,7 +57,7 @@ insert into t2 values ('a-1030=A', 1030), ('a-1020=A', 1020);
|
|||||||
explain select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
|
explain select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using where
|
||||||
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 28 test.t2.a,test.t2.b 1 Using join buffer (flat, BKA join)
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 28 test.t2.a,test.t2.b 1 Using join buffer (flat, BKA join); Key-ordered scan
|
||||||
select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
|
select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
|
||||||
a b filler a b
|
a b filler a b
|
||||||
a-1010=A 1010 filler a-1010=A 1010
|
a-1010=A 1010 filler a-1010=A 1010
|
||||||
@ -80,7 +80,7 @@ insert into t2 values ('a-1010=A', 1010), ('a-1030=A', 1030), ('a-1020=A', 1020)
|
|||||||
explain select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
|
explain select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
|
||||||
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 30 test.t2.a,test.t2.b 1 Using index condition(BKA); Using join buffer (flat, BKA join)
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 30 test.t2.a,test.t2.b 1 Using index condition(BKA); Using join buffer (flat, BKA join); Key-ordered scan
|
||||||
select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
|
select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
|
||||||
a b filler a b
|
a b filler a b
|
||||||
a-1010=A 1010 filler a-1010=A 1010
|
a-1010=A 1010 filler a-1010=A 1010
|
||||||
@ -89,7 +89,7 @@ a-1030=A 1030 filler a-1030=A 1030
|
|||||||
explain select * from t1, t2 where t1.a=t2.a;
|
explain select * from t1, t2 where t1.a=t2.a;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
|
||||||
1 SIMPLE t1 ref PRIMARY PRIMARY 26 test.t2.a 1 Using index condition(BKA); Using join buffer (flat, BKA join)
|
1 SIMPLE t1 ref PRIMARY PRIMARY 26 test.t2.a 1 Using index condition(BKA); Using join buffer (flat, BKA join); Key-ordered scan
|
||||||
select * from t1, t2 where t1.a=t2.a;
|
select * from t1, t2 where t1.a=t2.a;
|
||||||
a b filler a b
|
a b filler a b
|
||||||
a-1010=A 1010 filler a-1010=A 1010
|
a-1010=A 1010 filler a-1010=A 1010
|
||||||
@ -109,7 +109,7 @@ insert into t2 values (11,33), (11,22), (11,11);
|
|||||||
explain select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
|
explain select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
|
||||||
1 SIMPLE t1 ref PRIMARY PRIMARY 8 test.t2.a,test.t2.b 1 Using join buffer (flat, BKA join)
|
1 SIMPLE t1 ref PRIMARY PRIMARY 8 test.t2.a,test.t2.b 1 Using join buffer (flat, BKA join); Key-ordered scan
|
||||||
select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
|
select * from t1, t2 where t1.a=t2.a and t1.b=t2.b;
|
||||||
a b c filler a b
|
a b c filler a b
|
||||||
11 11 11 filler 11 11
|
11 11 11 filler 11 11
|
||||||
@ -131,14 +131,14 @@ set join_cache_level=6;
|
|||||||
explain select * from t1, t2 where t1.a=t2.a and t2.b + t1.b > 100;
|
explain select * from t1, t2 where t1.a=t2.a and t2.b + t1.b > 100;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
|
||||||
1 SIMPLE t1 ref PRIMARY PRIMARY 4 test.t2.a 1 Using index condition(BKA); Using join buffer (flat, BKA join)
|
1 SIMPLE t1 ref PRIMARY PRIMARY 4 test.t2.a 1 Using index condition(BKA); Using join buffer (flat, BKA join); Key-ordered scan
|
||||||
select * from t1, t2 where t1.a=t2.a and t2.b + t1.b > 100;
|
select * from t1, t2 where t1.a=t2.a and t2.b + t1.b > 100;
|
||||||
a b c filler a b
|
a b c filler a b
|
||||||
set optimizer_switch='index_condition_pushdown=off';
|
set optimizer_switch='index_condition_pushdown=off';
|
||||||
explain select * from t1, t2 where t1.a=t2.a and t2.b + t1.b > 100;
|
explain select * from t1, t2 where t1.a=t2.a and t2.b + t1.b > 100;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 Using where
|
||||||
1 SIMPLE t1 ref PRIMARY PRIMARY 4 test.t2.a 1 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t1 ref PRIMARY PRIMARY 4 test.t2.a 1 Using where; Using join buffer (flat, BKA join); Key-ordered scan
|
||||||
select * from t1, t2 where t1.a=t2.a and t2.b + t1.b > 100;
|
select * from t1, t2 where t1.a=t2.a and t2.b + t1.b > 100;
|
||||||
a b c filler a b
|
a b c filler a b
|
||||||
set optimizer_switch='index_condition_pushdown=on';
|
set optimizer_switch='index_condition_pushdown=on';
|
||||||
|
@ -399,7 +399,7 @@ ON City.Country=Country.Code AND City.Population > 5000000
|
|||||||
WHERE Country.Name LIKE 'C%' AND Country.Population > 10000000;
|
WHERE Country.Name LIKE 'C%' AND Country.Population > 10000000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
|
1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
|
||||||
1 SIMPLE City hash_range City_Population #hash#$hj:City_Population 3:4 world.Country.Code 25 Using where; Using MRR; Using join buffer (flat, BNLH join)
|
1 SIMPLE City hash_range City_Population #hash#$hj:City_Population 3:4 world.Country.Code 25 Using where; Rowid-ordered scan; Using join buffer (flat, BNLH join)
|
||||||
SELECT Country.Name, Country.Population, City.Name, City.Population
|
SELECT Country.Name, Country.Population, City.Name, City.Population
|
||||||
FROM Country LEFT JOIN City
|
FROM Country LEFT JOIN City
|
||||||
ON City.Country=Country.Code AND City.Population > 5000000
|
ON City.Country=Country.Code AND City.Population > 5000000
|
||||||
@ -815,7 +815,7 @@ SELECT City.Name, Country.Name FROM City,Country
|
|||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE City hash_ALL Population,Country #hash#Country 3 world.Country.Code 4079 Using where; Using join buffer (flat, BNLH join)
|
1 SIMPLE City hash_ALL Population,Country #hash#Country 3 world.Country.Code 4079 Using where; Using join buffer (flat, BNLH join)
|
||||||
SELECT City.Name, Country.Name FROM City,Country
|
SELECT City.Name, Country.Name FROM City,Country
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
@ -889,7 +889,7 @@ SELECT Name FROM City
|
|||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 PRIMARY City hash_ALL Population,Country #hash#Country 3 world.Country.Code 4079 Using where; Using join buffer (flat, BNLH join)
|
1 PRIMARY City hash_ALL Population,Country #hash#Country 3 world.Country.Code 4079 Using where; Using join buffer (flat, BNLH join)
|
||||||
SELECT Name FROM City
|
SELECT Name FROM City
|
||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
@ -1015,7 +1015,7 @@ SELECT City.Name, Country.Name FROM City,Country
|
|||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE City hash_ALL Population,Country #hash#Country 3 world.Country.Code 4079 Using where; Using join buffer (flat, BNLH join)
|
1 SIMPLE City hash_ALL Population,Country #hash#Country 3 world.Country.Code 4079 Using where; Using join buffer (flat, BNLH join)
|
||||||
SELECT City.Name, Country.Name FROM City,Country
|
SELECT City.Name, Country.Name FROM City,Country
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
@ -1089,7 +1089,7 @@ SELECT Name FROM City
|
|||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 PRIMARY City hash_ALL Population,Country #hash#Country 3 world.Country.Code 4079 Using where; Using join buffer (flat, BNLH join)
|
1 PRIMARY City hash_ALL Population,Country #hash#Country 3 world.Country.Code 4079 Using where; Using join buffer (flat, BNLH join)
|
||||||
SELECT Name FROM City
|
SELECT Name FROM City
|
||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
@ -1209,8 +1209,8 @@ FROM Country LEFT JOIN City
|
|||||||
ON City.Country=Country.Code AND City.Population > 5000000
|
ON City.Country=Country.Code AND City.Population > 5000000
|
||||||
WHERE Country.Name LIKE 'C%' AND Country.Population > 10000000;
|
WHERE Country.Name LIKE 'C%' AND Country.Population > 10000000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country range Name Name 52 NULL # Using index condition; Using where; Using MRR
|
1 SIMPLE Country range Name Name 52 NULL # Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE City hash_range Population,Country #hash#Country:Population 3:4 world.Country.Code # Using where; Using MRR; Using join buffer (flat, BNLH join)
|
1 SIMPLE City hash_range Population,Country #hash#Country:Population 3:4 world.Country.Code # Using where; Rowid-ordered scan; Using join buffer (flat, BNLH join)
|
||||||
SELECT Country.Name, Country.Population, City.Name, City.Population
|
SELECT Country.Name, Country.Population, City.Name, City.Population
|
||||||
FROM Country LEFT JOIN City
|
FROM Country LEFT JOIN City
|
||||||
ON City.Country=Country.Code AND City.Population > 5000000
|
ON City.Country=Country.Code AND City.Population > 5000000
|
||||||
@ -1237,7 +1237,7 @@ ON City.Country=Country.Code AND
|
|||||||
(City.Population > 5000000 OR City.Name LIKE 'Za%')
|
(City.Population > 5000000 OR City.Name LIKE 'Za%')
|
||||||
WHERE Country.Name LIKE 'C%' AND Country.Population > 10000000;
|
WHERE Country.Name LIKE 'C%' AND Country.Population > 10000000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country range Name Name 52 NULL 17 Using index condition; Using where; Using MRR
|
1 SIMPLE Country range Name Name 52 NULL 17 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE City hash_index_merge Population,Country,City_Name #hash#Country:Population,City_Name 3:4,35 world.Country.Code 96 Using sort_union(Population,City_Name); Using where; Using join buffer (flat, BNLH join)
|
1 SIMPLE City hash_index_merge Population,Country,City_Name #hash#Country:Population,City_Name 3:4,35 world.Country.Code 96 Using sort_union(Population,City_Name); Using where; Using join buffer (flat, BNLH join)
|
||||||
SELECT Country.Name, Country.Population, City.Name, City.Population
|
SELECT Country.Name, Country.Population, City.Name, City.Population
|
||||||
FROM Country LEFT JOIN City
|
FROM Country LEFT JOIN City
|
||||||
@ -1274,8 +1274,8 @@ SELECT City.Name, Country.Name FROM City,Country
|
|||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT City.Name, Country.Name FROM City,Country
|
SELECT City.Name, Country.Name FROM City,Country
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
@ -1305,8 +1305,8 @@ CountryLanguage.Percentage > 50 AND
|
|||||||
LENGTH(Language) < LENGTH(City.Name) - 2;
|
LENGTH(Language) < LENGTH(City.Name) - 2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
|
1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
|
||||||
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE City ref Country Country 3 world.CountryLanguage.Country 18 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE City ref Country Country 3 world.CountryLanguage.Country 18 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT City.Name, Country.Name, CountryLanguage.Language
|
SELECT City.Name, Country.Name, CountryLanguage.Language
|
||||||
FROM City,Country,CountryLanguage
|
FROM City,Country,CountryLanguage
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
@ -1348,8 +1348,8 @@ SELECT Name FROM City
|
|||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join)
|
1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT Name FROM City
|
SELECT Name FROM City
|
||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
@ -1377,7 +1377,7 @@ WHERE
|
|||||||
Country.Population > 10000000;
|
Country.Population > 10000000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
|
1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
|
||||||
1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage)
|
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage)
|
||||||
FROM Country LEFT JOIN CountryLanguage ON
|
FROM Country LEFT JOIN CountryLanguage ON
|
||||||
(CountryLanguage.Country=Country.Code AND Language='English')
|
(CountryLanguage.Country=Country.Code AND Language='English')
|
||||||
@ -1471,8 +1471,8 @@ SELECT City.Name, Country.Name FROM City,Country
|
|||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT City.Name, Country.Name FROM City,Country
|
SELECT City.Name, Country.Name FROM City,Country
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
@ -1502,8 +1502,8 @@ CountryLanguage.Percentage > 50 AND
|
|||||||
LENGTH(Language) < LENGTH(City.Name) - 2;
|
LENGTH(Language) < LENGTH(City.Name) - 2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
|
1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
|
||||||
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE City ref Country Country 3 world.CountryLanguage.Country 18 Using where; Using join buffer (incremental, BKA join)
|
1 SIMPLE City ref Country Country 3 world.CountryLanguage.Country 18 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT City.Name, Country.Name, CountryLanguage.Language
|
SELECT City.Name, Country.Name, CountryLanguage.Language
|
||||||
FROM City,Country,CountryLanguage
|
FROM City,Country,CountryLanguage
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
@ -1545,8 +1545,8 @@ SELECT Name FROM City
|
|||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join)
|
1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT Name FROM City
|
SELECT Name FROM City
|
||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
@ -1574,7 +1574,7 @@ WHERE
|
|||||||
Country.Population > 10000000;
|
Country.Population > 10000000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
|
1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
|
||||||
1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage)
|
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage)
|
||||||
FROM Country LEFT JOIN CountryLanguage ON
|
FROM Country LEFT JOIN CountryLanguage ON
|
||||||
(CountryLanguage.Country=Country.Code AND Language='English')
|
(CountryLanguage.Country=Country.Code AND Language='English')
|
||||||
@ -1668,8 +1668,8 @@ SELECT City.Name, Country.Name FROM City,Country
|
|||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT City.Name, Country.Name FROM City,Country
|
SELECT City.Name, Country.Name FROM City,Country
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
@ -1699,8 +1699,8 @@ CountryLanguage.Percentage > 50 AND
|
|||||||
LENGTH(Language) < LENGTH(City.Name) - 2;
|
LENGTH(Language) < LENGTH(City.Name) - 2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
|
1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
|
||||||
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE City ref Country Country 3 world.CountryLanguage.Country 18 Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE City ref Country Country 3 world.CountryLanguage.Country 18 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT City.Name, Country.Name, CountryLanguage.Language
|
SELECT City.Name, Country.Name, CountryLanguage.Language
|
||||||
FROM City,Country,CountryLanguage
|
FROM City,Country,CountryLanguage
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
@ -1742,8 +1742,8 @@ SELECT Name FROM City
|
|||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join)
|
1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT Name FROM City
|
SELECT Name FROM City
|
||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
@ -1771,7 +1771,7 @@ WHERE
|
|||||||
Country.Population > 10000000;
|
Country.Population > 10000000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
|
1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
|
||||||
1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage)
|
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage)
|
||||||
FROM Country LEFT JOIN CountryLanguage ON
|
FROM Country LEFT JOIN CountryLanguage ON
|
||||||
(CountryLanguage.Country=Country.Code AND Language='English')
|
(CountryLanguage.Country=Country.Code AND Language='English')
|
||||||
@ -1865,8 +1865,8 @@ SELECT City.Name, Country.Name FROM City,Country
|
|||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT City.Name, Country.Name FROM City,Country
|
SELECT City.Name, Country.Name FROM City,Country
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
@ -1896,8 +1896,8 @@ CountryLanguage.Percentage > 50 AND
|
|||||||
LENGTH(Language) < LENGTH(City.Name) - 2;
|
LENGTH(Language) < LENGTH(City.Name) - 2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
|
1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
|
||||||
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE City ref Country Country 3 world.CountryLanguage.Country 18 Using where; Using join buffer (incremental, BKAH join)
|
1 SIMPLE City ref Country Country 3 world.CountryLanguage.Country 18 Using where; Using join buffer (incremental, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT City.Name, Country.Name, CountryLanguage.Language
|
SELECT City.Name, Country.Name, CountryLanguage.Language
|
||||||
FROM City,Country,CountryLanguage
|
FROM City,Country,CountryLanguage
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
@ -1939,8 +1939,8 @@ SELECT Name FROM City
|
|||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join)
|
1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT Name FROM City
|
SELECT Name FROM City
|
||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
@ -1968,7 +1968,7 @@ WHERE
|
|||||||
Country.Population > 10000000;
|
Country.Population > 10000000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
|
1 SIMPLE Country ALL NULL NULL NULL NULL 239 Using where
|
||||||
1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE CountryLanguage eq_ref PRIMARY PRIMARY 33 world.Country.Code,const 1 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage)
|
SELECT Country.Name, IF(ISNULL(CountryLanguage.Country), NULL, CountryLanguage.Percentage)
|
||||||
FROM Country LEFT JOIN CountryLanguage ON
|
FROM Country LEFT JOIN CountryLanguage ON
|
||||||
(CountryLanguage.Country=Country.Code AND Language='English')
|
(CountryLanguage.Country=Country.Code AND Language='English')
|
||||||
@ -2066,7 +2066,7 @@ SELECT City.Name, Country.Name FROM City,Country
|
|||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE City hash_ALL Population,Country #hash#Country 3 world.Country.Code 4079 Using where; Using join buffer (flat, BNLH join)
|
1 SIMPLE City hash_ALL Population,Country #hash#Country 3 world.Country.Code 4079 Using where; Using join buffer (flat, BNLH join)
|
||||||
SELECT City.Name, Country.Name FROM City,Country
|
SELECT City.Name, Country.Name FROM City,Country
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
@ -2140,7 +2140,7 @@ SELECT Name FROM City
|
|||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 PRIMARY City hash_ALL Population,Country #hash#Country 3 world.Country.Code 4079 Using where; Using join buffer (flat, BNLH join)
|
1 PRIMARY City hash_ALL Population,Country #hash#Country 3 world.Country.Code 4079 Using where; Using join buffer (flat, BNLH join)
|
||||||
SELECT Name FROM City
|
SELECT Name FROM City
|
||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
@ -2170,7 +2170,7 @@ SELECT City.Name, Country.Name FROM City,Country
|
|||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE City hash_ALL Population,Country #hash#Country 3 world.Country.Code 4079 Using where; Using join buffer (flat, BNLH join)
|
1 SIMPLE City hash_ALL Population,Country #hash#Country 3 world.Country.Code 4079 Using where; Using join buffer (flat, BNLH join)
|
||||||
SELECT City.Name, Country.Name FROM City,Country
|
SELECT City.Name, Country.Name FROM City,Country
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
@ -2244,7 +2244,7 @@ SELECT Name FROM City
|
|||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 PRIMARY City hash_ALL Population,Country #hash#Country 3 world.Country.Code 4079 Using where; Using join buffer (flat, BNLH join)
|
1 PRIMARY City hash_ALL Population,Country #hash#Country 3 world.Country.Code 4079 Using where; Using join buffer (flat, BNLH join)
|
||||||
SELECT Name FROM City
|
SELECT Name FROM City
|
||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
@ -2274,8 +2274,8 @@ SELECT City.Name, Country.Name FROM City,Country
|
|||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT City.Name, Country.Name FROM City,Country
|
SELECT City.Name, Country.Name FROM City,Country
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
@ -2305,8 +2305,8 @@ CountryLanguage.Percentage > 50 AND
|
|||||||
LENGTH(Language) < LENGTH(City.Name) - 2;
|
LENGTH(Language) < LENGTH(City.Name) - 2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
|
1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
|
||||||
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE City ref Country Country 3 world.CountryLanguage.Country 18 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE City ref Country Country 3 world.CountryLanguage.Country 18 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT City.Name, Country.Name, CountryLanguage.Language
|
SELECT City.Name, Country.Name, CountryLanguage.Language
|
||||||
FROM City,Country,CountryLanguage
|
FROM City,Country,CountryLanguage
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
@ -2348,8 +2348,8 @@ SELECT Name FROM City
|
|||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join)
|
1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT Name FROM City
|
SELECT Name FROM City
|
||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
@ -2378,8 +2378,8 @@ SELECT City.Name, Country.Name FROM City,Country
|
|||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT City.Name, Country.Name FROM City,Country
|
SELECT City.Name, Country.Name FROM City,Country
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
@ -2409,8 +2409,8 @@ CountryLanguage.Percentage > 50 AND
|
|||||||
LENGTH(Language) < LENGTH(City.Name) - 2;
|
LENGTH(Language) < LENGTH(City.Name) - 2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
|
1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
|
||||||
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE City ref Country Country 3 world.CountryLanguage.Country 18 Using where; Using join buffer (incremental, BKA join)
|
1 SIMPLE City ref Country Country 3 world.CountryLanguage.Country 18 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT City.Name, Country.Name, CountryLanguage.Language
|
SELECT City.Name, Country.Name, CountryLanguage.Language
|
||||||
FROM City,Country,CountryLanguage
|
FROM City,Country,CountryLanguage
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
@ -2452,8 +2452,8 @@ SELECT Name FROM City
|
|||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join)
|
1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT Name FROM City
|
SELECT Name FROM City
|
||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
@ -2482,8 +2482,8 @@ SELECT City.Name, Country.Name FROM City,Country
|
|||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT City.Name, Country.Name FROM City,Country
|
SELECT City.Name, Country.Name FROM City,Country
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
@ -2513,8 +2513,8 @@ CountryLanguage.Percentage > 50 AND
|
|||||||
LENGTH(Language) < LENGTH(City.Name) - 2;
|
LENGTH(Language) < LENGTH(City.Name) - 2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
|
1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
|
||||||
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE City ref Country Country 3 world.CountryLanguage.Country 18 Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE City ref Country Country 3 world.CountryLanguage.Country 18 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT City.Name, Country.Name, CountryLanguage.Language
|
SELECT City.Name, Country.Name, CountryLanguage.Language
|
||||||
FROM City,Country,CountryLanguage
|
FROM City,Country,CountryLanguage
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
@ -2556,8 +2556,8 @@ SELECT Name FROM City
|
|||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join)
|
1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT Name FROM City
|
SELECT Name FROM City
|
||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
@ -2586,8 +2586,8 @@ SELECT City.Name, Country.Name FROM City,Country
|
|||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 SIMPLE Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT City.Name, Country.Name FROM City,Country
|
SELECT City.Name, Country.Name FROM City,Country
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
Country.Name LIKE 'L%' AND City.Population > 100000;
|
Country.Name LIKE 'L%' AND City.Population > 100000;
|
||||||
@ -2617,8 +2617,8 @@ CountryLanguage.Percentage > 50 AND
|
|||||||
LENGTH(Language) < LENGTH(City.Name) - 2;
|
LENGTH(Language) < LENGTH(City.Name) - 2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
|
1 SIMPLE CountryLanguage ALL PRIMARY,Percentage NULL NULL NULL 984 Using where
|
||||||
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.CountryLanguage.Country 1 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE City ref Country Country 3 world.CountryLanguage.Country 18 Using where; Using join buffer (incremental, BKAH join)
|
1 SIMPLE City ref Country Country 3 world.CountryLanguage.Country 18 Using where; Using join buffer (incremental, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT City.Name, Country.Name, CountryLanguage.Language
|
SELECT City.Name, Country.Name, CountryLanguage.Language
|
||||||
FROM City,Country,CountryLanguage
|
FROM City,Country,CountryLanguage
|
||||||
WHERE City.Country=Country.Code AND
|
WHERE City.Country=Country.Code AND
|
||||||
@ -2660,8 +2660,8 @@ SELECT Name FROM City
|
|||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Using MRR
|
1 PRIMARY Country range PRIMARY,Name Name 52 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join)
|
1 PRIMARY City ref Population,Country Country 3 world.Country.Code 18 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT Name FROM City
|
SELECT Name FROM City
|
||||||
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND
|
||||||
City.Population > 100000;
|
City.Population > 100000;
|
||||||
@ -2745,8 +2745,8 @@ EXPLAIN
|
|||||||
SELECT City.Name, Country.Name FROM City,Country
|
SELECT City.Name, Country.Name FROM City,Country
|
||||||
WHERE City.Country=Country.Code AND City.Population > 3000000;
|
WHERE City.Country=Country.Code AND City.Population > 3000000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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 MRR
|
1 SIMPLE City range Population,Country Population 4 NULL # Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.City.Country # Using join buffer (flat, BKAH join)
|
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.City.Country # Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT City.Name, Country.Name FROM City,Country
|
SELECT City.Name, Country.Name FROM City,Country
|
||||||
WHERE City.Country=Country.Code AND City.Population > 3000000;
|
WHERE City.Country=Country.Code AND City.Population > 3000000;
|
||||||
Name Name
|
Name Name
|
||||||
@ -3035,15 +3035,15 @@ t1.metaid = t2.metaid AND t1.affiliateid = '2';
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t6 system PRIMARY NULL NULL NULL 1
|
1 SIMPLE t6 system PRIMARY NULL NULL NULL 1
|
||||||
1 SIMPLE t1 ref t1_affiliateid,t1_metaid t1_affiliateid 4 const 1
|
1 SIMPLE t1 ref t1_affiliateid,t1_metaid t1_affiliateid 4 const 1
|
||||||
1 SIMPLE t4 ref PRIMARY,t4_formatclassid,t4_formats_idx t4_formats_idx 1 const 1 Using index condition; Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t4 ref PRIMARY,t4_formatclassid,t4_formats_idx t4_formats_idx 1 const 1 Using index condition; Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t5 eq_ref PRIMARY,t5_formattypeid PRIMARY 4 test.t4.formatclassid 1 Using where; Using join buffer (incremental, BKA join)
|
1 SIMPLE t5 eq_ref PRIMARY,t5_formattypeid PRIMARY 4 test.t4.formatclassid 1 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.metaid 1 Using join buffer (incremental, BKA join)
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.metaid 1 Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t7 ref PRIMARY PRIMARY 4 test.t1.metaid 1 Using index
|
1 SIMPLE t7 ref PRIMARY PRIMARY 4 test.t1.metaid 1 Using index
|
||||||
1 SIMPLE t3 ref t3_metaid,t3_formatid,t3_metaidformatid t3_metaid 4 test.t1.metaid 2 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t3 ref t3_metaid,t3_formatid,t3_metaidformatid t3_metaid 4 test.t1.metaid 2 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t8 eq_ref PRIMARY PRIMARY 4 test.t7.artistid 1 Using join buffer (incremental, BKA join)
|
1 SIMPLE t8 eq_ref PRIMARY PRIMARY 4 test.t7.artistid 1 Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t9 index PRIMARY,t9_subgenreid,t9_metaid PRIMARY 8 NULL 2 Using where; Using index; Using join buffer (incremental, BNL join)
|
1 SIMPLE t9 index PRIMARY,t9_subgenreid,t9_metaid PRIMARY 8 NULL 2 Using where; Using index; Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t10 eq_ref PRIMARY,t10_genreid PRIMARY 4 test.t9.subgenreid 1 Using join buffer (incremental, BKA join)
|
1 SIMPLE t10 eq_ref PRIMARY,t10_genreid PRIMARY 4 test.t9.subgenreid 1 Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t11 eq_ref PRIMARY PRIMARY 4 test.t10.genreid 1 Using join buffer (incremental, BKA join)
|
1 SIMPLE t11 eq_ref PRIMARY PRIMARY 4 test.t10.genreid 1 Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT t1.uniquekey, t1.xml AS affiliateXml,
|
SELECT t1.uniquekey, t1.xml AS affiliateXml,
|
||||||
t8.name AS artistName, t8.artistid,
|
t8.name AS artistName, t8.artistid,
|
||||||
t11.name AS genreName, t11.genreid, t11.priority AS genrePriority,
|
t11.name AS genreName, t11.genreid, t11.priority AS genrePriority,
|
||||||
@ -3124,7 +3124,7 @@ FROM t1,t2,t3 WHERE a1=a2 AND b2=b3 AND MOD(c3,10)>7;
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 9 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 9 Using where
|
||||||
1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.a1 1 Using index
|
1 SIMPLE t2 ref PRIMARY PRIMARY 4 test.t1.a1 1 Using index
|
||||||
1 SIMPLE t3 ref idx idx 5 test.t2.b2 5 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t3 ref idx idx 5 test.t2.b2 5 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT a1<>a2, a1, a2, b2, b3, c3,
|
SELECT a1<>a2, a1, a2, b2, b3, c3,
|
||||||
SUBSTR(filler1,1,1) AS s1, SUBSTR(filler2,1,1) AS s2
|
SUBSTR(filler1,1,1) AS s1, SUBSTR(filler2,1,1) AS s2
|
||||||
FROM t1,t2,t3 WHERE a1=a2 AND b2=b3 AND MOD(c3,10)>7;
|
FROM t1,t2,t3 WHERE a1=a2 AND b2=b3 AND MOD(c3,10)>7;
|
||||||
@ -3156,7 +3156,7 @@ set join_cache_level=8;
|
|||||||
EXPLAIN SELECT * FROM t1,t2 WHERE t1.a=t2.a AND t1.b >= 30;
|
EXPLAIN SELECT * FROM t1,t2 WHERE t1.a=t2.a AND t1.b >= 30;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL idx NULL NULL NULL 7 Using where
|
1 SIMPLE t1 ALL idx NULL NULL NULL 7 Using where
|
||||||
1 SIMPLE t2 ref idx idx 5 test.t1.a 2 Using join buffer (flat, BKAH join)
|
1 SIMPLE t2 ref idx idx 5 test.t1.a 2 Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT * FROM t1,t2 WHERE t1.a=t2.a AND t1.b >= 30;
|
SELECT * FROM t1,t2 WHERE t1.a=t2.a AND t1.b >= 30;
|
||||||
a b a b
|
a b a b
|
||||||
7 40 7 10
|
7 40 7 10
|
||||||
@ -3189,7 +3189,7 @@ EXPLAIN
|
|||||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a WHERE t2.b IS NULL;
|
SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a WHERE t2.b IS NULL;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
|
||||||
1 SIMPLE t2 ref i_a i_a 4 test.t1.a 2 Using where; Not exists; Using join buffer (flat, BKA join)
|
1 SIMPLE t2 ref i_a i_a 4 test.t1.a 2 Using where; Not exists; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a WHERE t2.b IS NULL;
|
SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.a WHERE t2.b IS NULL;
|
||||||
a a b
|
a a b
|
||||||
3 NULL NULL
|
3 NULL NULL
|
||||||
@ -3216,7 +3216,7 @@ select t1.a, count(t2.p) as count
|
|||||||
from t1 left join t2 on t1.a=t2.a and t2.p % 2 = 1 group by t1.a;
|
from t1 left join t2 on t1.a=t2.a and t2.p % 2 = 1 group by t1.a;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 8 Using temporary; Using filesort
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 8 Using temporary; Using filesort
|
||||||
1 SIMPLE t2 ref i_a i_a 5 test.t1.a 2 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t2 ref i_a i_a 5 test.t1.a 2 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
select t1.a, count(t2.p) as count
|
select t1.a, count(t2.p) as count
|
||||||
from t1 left join t2 on t1.a=t2.a and t2.p % 2 = 1 group by t1.a;
|
from t1 left join t2 on t1.a=t2.a and t2.p % 2 = 1 group by t1.a;
|
||||||
a count
|
a count
|
||||||
@ -3335,7 +3335,7 @@ set join_buffer_size=1024;
|
|||||||
EXPLAIN SELECT AVG(c) FROM t1,t2 WHERE t1.a=t2.b;
|
EXPLAIN SELECT AVG(c) FROM t1,t2 WHERE t1.a=t2.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2050 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 2050 Using where
|
||||||
1 SIMPLE t2 ref idx idx 5 test.t1.a 640 Using join buffer (flat, BKA join)
|
1 SIMPLE t2 ref idx idx 5 test.t1.a 640 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT AVG(c) FROM t1,t2 WHERE t1.a=t2.b;
|
SELECT AVG(c) FROM t1,t2 WHERE t1.a=t2.b;
|
||||||
AVG(c)
|
AVG(c)
|
||||||
5.0000
|
5.0000
|
||||||
@ -3375,8 +3375,8 @@ WHERE t1.a=t2.a AND t2.a=t3.a AND
|
|||||||
t1.b IS NULL AND t2.b IS NULL AND t3.b IS NULL;
|
t1.b IS NULL AND t2.b IS NULL AND t3.b IS NULL;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 16384 Using where
|
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 16384 Using where
|
||||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT COUNT(*) FROM t1,t2,t3
|
SELECT COUNT(*) FROM t1,t2,t3
|
||||||
WHERE t1.a=t2.a AND t2.a=t3.a AND
|
WHERE t1.a=t2.a AND t2.a=t3.a AND
|
||||||
t1.b IS NULL AND t2.b IS NULL AND t3.b IS NULL;
|
t1.b IS NULL AND t2.b IS NULL AND t3.b IS NULL;
|
||||||
@ -3441,7 +3441,7 @@ WHERE t1.a=t2.a;
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 2 Using index
|
1 SIMPLE t1 index PRIMARY PRIMARY 8 NULL 2 Using index
|
||||||
1 SIMPLE t2 ref PRIMARY PRIMARY 8 test.t1.a 1 Using index
|
1 SIMPLE t2 ref PRIMARY PRIMARY 8 test.t1.a 1 Using index
|
||||||
1 SIMPLE t3 ref idx idx 16 test.t1.a,test.t2.b 2 Using join buffer (flat, BKA join)
|
1 SIMPLE t3 ref idx idx 16 test.t1.a,test.t2.b 2 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT t1.a, t2.a, t3.a, t2.b, t3.b, t3.val
|
SELECT t1.a, t2.a, t3.a, t2.b, t3.b, t3.val
|
||||||
FROM (t1,t2) LEFT JOIN t3 ON (t1.a=t3.a AND t2.b=t3.b)
|
FROM (t1,t2) LEFT JOIN t3 ON (t1.a=t3.a AND t2.b=t3.b)
|
||||||
WHERE t1.a=t2.a;
|
WHERE t1.a=t2.a;
|
||||||
@ -3512,7 +3512,7 @@ explain select t2.f1, t2.f2, t2.f3 from t1,t2
|
|||||||
where t1.f1=t2.f1 and t2.f2 between t1.f1 and t2.f2;
|
where t1.f1=t2.f1 and t2.f2 between t1.f1 and t2.f2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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 t1 ALL NULL NULL NULL NULL 3 Using where
|
||||||
1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using join buffer (flat, BKA join)
|
1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
set join_cache_level=6;
|
set join_cache_level=6;
|
||||||
select t2.f1, t2.f2, t2.f3 from t1,t2
|
select t2.f1, t2.f2, t2.f3 from t1,t2
|
||||||
where t1.f1=t2.f1 and t2.f2 between t1.f1 and t1.f2 and t2.f2 + 1 >= t1.f1 + 1;
|
where t1.f1=t2.f1 and t2.f2 between t1.f1 and t1.f2 and t2.f2 + 1 >= t1.f1 + 1;
|
||||||
@ -3525,7 +3525,7 @@ explain select t2.f1, t2.f2, t2.f3 from t1,t2
|
|||||||
where t1.f1=t2.f1 and t2.f2 between t1.f1 and t2.f2;
|
where t1.f1=t2.f1 and t2.f2 between t1.f1 and t2.f2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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 t1 ALL NULL NULL NULL NULL 3 Using where
|
||||||
1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using join buffer (flat, BKA join)
|
1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
set join_cache_level=7;
|
set join_cache_level=7;
|
||||||
select t2.f1, t2.f2, t2.f3 from t1,t2
|
select t2.f1, t2.f2, t2.f3 from t1,t2
|
||||||
where t1.f1=t2.f1 and t2.f2 between t1.f1 and t1.f2 and t2.f2 + 1 >= t1.f1 + 1;
|
where t1.f1=t2.f1 and t2.f2 between t1.f1 and t1.f2 and t2.f2 + 1 >= t1.f1 + 1;
|
||||||
@ -3538,7 +3538,7 @@ explain select t2.f1, t2.f2, t2.f3 from t1,t2
|
|||||||
where t1.f1=t2.f1 and t2.f2 between t1.f1 and t2.f2;
|
where t1.f1=t2.f1 and t2.f2 between t1.f1 and t2.f2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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 t1 ALL NULL NULL NULL NULL 3 Using where
|
||||||
1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
set join_cache_level=8;
|
set join_cache_level=8;
|
||||||
select t2.f1, t2.f2, t2.f3 from t1,t2
|
select t2.f1, t2.f2, t2.f3 from t1,t2
|
||||||
where t1.f1=t2.f1 and t2.f2 between t1.f1 and t1.f2 and t2.f2 + 1 >= t1.f1 + 1;
|
where t1.f1=t2.f1 and t2.f2 between t1.f1 and t1.f2 and t2.f2 + 1 >= t1.f1 + 1;
|
||||||
@ -3551,7 +3551,7 @@ explain select t2.f1, t2.f2, t2.f3 from t1,t2
|
|||||||
where t1.f1=t2.f1 and t2.f2 between t1.f1 and t2.f2;
|
where t1.f1=t2.f1 and t2.f2 between t1.f1 and t2.f2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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 t1 ALL NULL NULL NULL NULL 3 Using where
|
||||||
1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE t2 ref f1 f1 4 test.t1.f1 3 Using index condition(BKA); Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
set join_cache_level=default;
|
set join_cache_level=default;
|
||||||
#
|
#
|
||||||
@ -3570,7 +3570,7 @@ select t1.id1, sum(t2.id2) from t1 join t2 on t1.id1=t2.id1
|
|||||||
where t1.d=3 group by t1.id1;
|
where t1.d=3 group by t1.id1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref idx1 idx1 5 const 4 Using where; Using index; Using temporary; Using filesort
|
1 SIMPLE t1 ref idx1 idx1 5 const 4 Using where; Using index; Using temporary; Using filesort
|
||||||
1 SIMPLE t2 ref idx2 idx2 5 test.t1.id1 2 Using join buffer (flat, BKA join)
|
1 SIMPLE t2 ref idx2 idx2 5 test.t1.id1 2 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
select t1.id1, sum(t2.id2) from t1 join t2 on t1.id1=t2.id1
|
select t1.id1, sum(t2.id2) from t1 join t2 on t1.id1=t2.id1
|
||||||
where t1.d=3 group by t1.id1;
|
where t1.d=3 group by t1.id1;
|
||||||
id1 sum(t2.id2)
|
id1 sum(t2.id2)
|
||||||
@ -3582,7 +3582,7 @@ select t1.id1 from t1 join t2 on t1.id1=t2.id1
|
|||||||
where t1.d=3 and t2.id2 > 200 order by t1.id1;
|
where t1.d=3 and t2.id2 > 200 order by t1.id1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref idx1 idx1 5 const 4 Using where; Using index; Using temporary; Using filesort
|
1 SIMPLE t1 ref idx1 idx1 5 const 4 Using where; Using index; Using temporary; Using filesort
|
||||||
1 SIMPLE t2 ref idx2 idx2 5 test.t1.id1 2 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t2 ref idx2 idx2 5 test.t1.id1 2 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
select t1.id1 from t1 join t2 on t1.id1=t2.id1
|
select t1.id1 from t1 join t2 on t1.id1=t2.id1
|
||||||
where t1.d=3 and t2.id2 > 200 order by t1.id1;
|
where t1.d=3 and t2.id2 > 200 order by t1.id1;
|
||||||
id1
|
id1
|
||||||
@ -3639,9 +3639,9 @@ select t1.a, t1.b, t1.c, t1.d, t2.e, t3.f, t4.g from t1,t2,t3,t4
|
|||||||
where t2.b=t1.b and t3.d=t1.d and t4.c=t1.c;
|
where t2.b=t1.b and t3.d=t1.d and t4.c=t1.c;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 7 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 7 Using where
|
||||||
1 SIMPLE t2 ref idx idx 5 test.t1.b 1 Using join buffer (flat, BKA join)
|
1 SIMPLE t2 ref idx idx 5 test.t1.b 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t3 ref idx idx 5 test.t1.d 1 Using join buffer (incremental, BKA join)
|
1 SIMPLE t3 ref idx idx 5 test.t1.d 1 Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t4 ref idx idx 5 test.t1.c 1 Using join buffer (incremental, BKA join)
|
1 SIMPLE t4 ref idx idx 5 test.t1.c 1 Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
select t1.a, t1.b, t1.c, t1.d, t2.e, t3.f, t4.g from t1,t2,t3,t4
|
select t1.a, t1.b, t1.c, t1.d, t2.e, t3.f, t4.g from t1,t2,t3,t4
|
||||||
where t2.b=t1.b and t3.d=t1.d and t4.c=t1.c;
|
where t2.b=t1.b and t3.d=t1.d and t4.c=t1.c;
|
||||||
a b c d e f g
|
a b c d e f g
|
||||||
@ -3690,10 +3690,10 @@ WHERE t1.id1=t5.id1 AND t1.id2=t5.id2 and t4.id2=t1.id2 AND
|
|||||||
t5.enum2='Active' AND t3.id4=t2.id4 AND t2.id3=t1.id3 AND t3.text1<'D';
|
t5.enum2='Active' AND t3.id4=t2.id4 AND t2.id3=t1.id3 AND t3.text1<'D';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 349 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 349 Using where
|
||||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 8 test.t1.id3 1 Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 8 test.t1.id3 1 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 8 test.t2.id4 1 Using where; Using join buffer (incremental, BKAH join)
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 8 test.t2.id4 1 Using where; Using join buffer (incremental, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t4 eq_ref PRIMARY PRIMARY 8 test.t1.id2 1 Using join buffer (incremental, BKAH join)
|
1 SIMPLE t4 eq_ref PRIMARY PRIMARY 8 test.t1.id2 1 Using join buffer (incremental, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 16 test.t1.id1,test.t1.id2 1 Using where; Using join buffer (incremental, BKAH join)
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 16 test.t1.id1,test.t1.id2 1 Using where; Using join buffer (incremental, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT STRAIGHT_JOIN t1.id1, t1.num3, t3.text1, t3.id4, t2.id3, t4.dummy
|
SELECT STRAIGHT_JOIN t1.id1, t1.num3, t3.text1, t3.id4, t2.id3, t4.dummy
|
||||||
FROM t1 JOIN t2 JOIN t3 JOIN t4 JOIN t5
|
FROM t1 JOIN t2 JOIN t3 JOIN t4 JOIN t5
|
||||||
WHERE t1.id1=t5.id1 AND t1.id2=t5.id2 and t4.id2=t1.id2 AND
|
WHERE t1.id1=t5.id1 AND t1.id2=t5.id2 and t4.id2=t1.id2 AND
|
||||||
@ -3906,7 +3906,7 @@ SELECT t3.a FROM t1,t2,t3 WHERE t1.a = t3.a AND t1.b = t3.b;
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using join buffer (flat, BNL join)
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using join buffer (flat, BNL join)
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using join buffer (incremental, BKA join)
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT t3.a FROM t1,t2,t3 WHERE t1.a = t3.a AND t1.b = t3.b;
|
SELECT t3.a FROM t1,t2,t3 WHERE t1.a = t3.a AND t1.b = t3.b;
|
||||||
a
|
a
|
||||||
27
|
27
|
||||||
@ -3968,7 +3968,7 @@ set join_cache_level = 5;
|
|||||||
explain SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
explain SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
||||||
1 SIMPLE t2 ref b b 5 test.t1.b 2 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t2 ref b b 5 test.t1.b 2 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
||||||
a
|
a
|
||||||
NULL
|
NULL
|
||||||
@ -3977,7 +3977,7 @@ set join_cache_level = 8;
|
|||||||
explain SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
explain SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
||||||
1 SIMPLE t2 ref b b 5 test.t1.b 2 Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE t2 ref b b 5 test.t1.b 2 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
||||||
a
|
a
|
||||||
NULL
|
NULL
|
||||||
@ -3988,7 +3988,7 @@ set join_cache_level = 5;
|
|||||||
explain SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
explain SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
||||||
1 SIMPLE t2 ref b b 5 test.t1.b 2 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t2 ref b b 5 test.t1.b 2 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
||||||
a
|
a
|
||||||
NULL
|
NULL
|
||||||
@ -4002,7 +4002,7 @@ set join_cache_level = 5;
|
|||||||
explain SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
explain SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
||||||
1 SIMPLE t2 ref b b 103 test.t1.b 2 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t2 ref b b 103 test.t1.b 2 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
||||||
a
|
a
|
||||||
NULL
|
NULL
|
||||||
@ -4011,7 +4011,7 @@ set join_cache_level = 8;
|
|||||||
explain SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
explain SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
||||||
1 SIMPLE t2 ref b b 103 test.t1.b 2 Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE t2 ref b b 103 test.t1.b 2 Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b;
|
||||||
a
|
a
|
||||||
NULL
|
NULL
|
||||||
@ -4037,7 +4037,7 @@ SELECT t.a FROM t1 t, t1 s FORCE INDEX(idx)
|
|||||||
WHERE s.pk AND s.a >= t.pk AND s.b = t.c;
|
WHERE s.pk AND s.a >= t.pk AND s.b = t.c;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t ALL NULL NULL NULL NULL 2 Using where
|
1 SIMPLE t ALL NULL NULL NULL NULL 2 Using where
|
||||||
1 SIMPLE s ref idx idx 19 test.t.c 1 Using index condition(BKA); Using where; Using join buffer (flat, BKAH join)
|
1 SIMPLE s ref idx idx 19 test.t.c 1 Using index condition(BKA); Using where; Using join buffer (flat, BKAH join); Key-ordered Rowid-ordered scan
|
||||||
SELECT t.a FROM t1 t, t1 s FORCE INDEX(idx)
|
SELECT t.a FROM t1 t, t1 s FORCE INDEX(idx)
|
||||||
WHERE s.pk AND s.a >= t.pk AND s.b = t.c;
|
WHERE s.pk AND s.a >= t.pk AND s.b = t.c;
|
||||||
a
|
a
|
||||||
@ -4229,8 +4229,8 @@ SELECT t2.v FROM t1, t2, t3 WHERE t3.v <> t2.v AND t3.pk = t2.i AND t1.v = t3.v
|
|||||||
GROUP BY t2.v ORDER BY t1.pk,t2.v;
|
GROUP BY t2.v ORDER BY t1.pk,t2.v;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL idx1 NULL NULL NULL 20 Using temporary; Using filesort
|
1 SIMPLE t2 ALL idx1 NULL NULL NULL 20 Using temporary; Using filesort
|
||||||
1 SIMPLE t3 eq_ref PRIMARY,idx2 PRIMARY 4 test.t2.i 1 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t3 eq_ref PRIMARY,idx2 PRIMARY 4 test.t2.i 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t1 ref idx2 idx2 3 test.t3.v 2 Using join buffer (incremental, BKA join)
|
1 SIMPLE t1 ref idx2 idx2 3 test.t3.v 2 Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT t2.v FROM t1, t2, t3 WHERE t3.v <> t2.v AND t3.pk = t2.i AND t1.v = t3.v
|
SELECT t2.v FROM t1, t2, t3 WHERE t3.v <> t2.v AND t3.pk = t2.i AND t1.v = t3.v
|
||||||
GROUP BY t2.v ORDER BY t1.pk,t2.v;
|
GROUP BY t2.v ORDER BY t1.pk,t2.v;
|
||||||
v
|
v
|
||||||
@ -4700,7 +4700,7 @@ SELECT * FROM t1 LEFT JOIN t2 JOIN t3 ON t3.a3 = t2.a2 ON t3.b3 <> 0;
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
||||||
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 1 Using where; Using join buffer (flat, BNL join)
|
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 1 Using where; Using join buffer (flat, BNL join)
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.a2 1 Using where; Using join buffer (incremental, BKA join)
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.a2 1 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT * FROM t1 LEFT JOIN t2 JOIN t3 ON t3.a3 = t2.a2 ON t3.b3 <> 0;
|
SELECT * FROM t1 LEFT JOIN t2 JOIN t3 ON t3.a3 = t2.a2 ON t3.b3 <> 0;
|
||||||
a1 a2 b2 a3 b3
|
a1 a2 b2 a3 b3
|
||||||
0 2 1 2 1
|
0 2 1 2 1
|
||||||
@ -4761,7 +4761,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 1 Using where
|
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 1 Using where
|
||||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.a2 1 Using index
|
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.a2 1 Using index
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (flat, BNL join)
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (flat, BNL join)
|
||||||
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t2.a2 1 Using where; Using join buffer (incremental, BKA join)
|
1 SIMPLE t5 eq_ref PRIMARY PRIMARY 4 test.t2.a2 1 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT t4.a4, t5.b5
|
SELECT t4.a4, t5.b5
|
||||||
FROM ((t1 LEFT JOIN (t2 JOIN t3 ON t2.a2 = t3.a3) ON t2.b2 = t1.a1)
|
FROM ((t1 LEFT JOIN (t2 JOIN t3 ON t2.a2 = t3.a3) ON t2.b2 = t1.a1)
|
||||||
LEFT JOIN t4 ON t4.a4 <> 0) LEFT JOIN t5 ON t5.a5 = t2.a2;
|
LEFT JOIN t4 ON t4.a4 <> 0) LEFT JOIN t5 ON t5.a5 = t2.a2;
|
||||||
@ -4819,8 +4819,8 @@ EXPLAIN
|
|||||||
SELECT * FROM t1,t2
|
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);
|
WHERE t1.f1 = t2.f4 AND (t1.f3 = 1 AND t2.f3 = 4 OR t1.f3 = 2 AND t2.f3 = 6);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using where; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 Using where; Using MRR; Using join buffer (flat, BNL join)
|
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 Using where; Rowid-ordered scan; Using join buffer (flat, BNL join)
|
||||||
SELECT * FROM t1,t2
|
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);
|
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
|
f1 f3 f3 f2 f4
|
||||||
@ -4829,8 +4829,8 @@ EXPLAIN
|
|||||||
SELECT * FROM t1,t2
|
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);
|
WHERE t1.f1 = t2.f4 AND (t1.f3 = 1 AND t2.f3 = 4 OR t1.f3 = 2 AND t2.f3 = 6);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Using where; Using MRR; Using join buffer (flat, BNL join)
|
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Using where; Rowid-ordered scan; Using join buffer (flat, BNL join)
|
||||||
SELECT * FROM t1,t2
|
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);
|
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
|
f1 f3 f3 f2 f4
|
||||||
@ -4902,7 +4902,7 @@ EXPLAIN
|
|||||||
SELECT * FROM t1,t2 WHERE t1.a < 3 and t2.a IS NULL;
|
SELECT * FROM t1,t2 WHERE t1.a < 3 and t2.a IS NULL;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 Using where; Using index
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 Using where; Using index
|
||||||
1 SIMPLE t2 hash_range idx #hash#idx:idx 5:5 const 4 Using index condition; Using MRR; Using join buffer (flat, BNLH join)
|
1 SIMPLE t2 hash_range idx #hash#idx:idx 5:5 const 4 Using index condition; Rowid-ordered scan; Using join buffer (flat, BNLH join)
|
||||||
SELECT * FROM t1,t2 WHERE t1.a < 3 and t2.a IS NULL;
|
SELECT * FROM t1,t2 WHERE t1.a < 3 and t2.a IS NULL;
|
||||||
a a b
|
a a b
|
||||||
1 NULL 10
|
1 NULL 10
|
||||||
|
@ -858,7 +858,7 @@ ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (flat, BNL join)
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (flat, BNL join)
|
||||||
1 SIMPLE t2 ref idx_b idx_b 5 test.t3.b 2 100.00 Using where; Using join buffer (incremental, BKA join)
|
1 SIMPLE t2 ref idx_b idx_b 5 test.t3.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (incremental, BNL join)
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (incremental, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t3` join `test`.`t4` left join (`test`.`t1` join `test`.`t2`) on((((`test`.`t3`.`a` = 1) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) and (`test`.`t2`.`b` = `test`.`t3`.`b`))) and (`test`.`t3`.`b` is not null))) where 1
|
Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t3` join `test`.`t4` left join (`test`.`t1` join `test`.`t2`) on((((`test`.`t3`.`a` = 1) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) and (`test`.`t2`.`b` = `test`.`t3`.`b`))) and (`test`.`t3`.`b` is not null))) where 1
|
||||||
@ -966,7 +966,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t1 hash_ALL NULL #hash#$hj 5 test.t0.b 3 100.00 Using where; Using join buffer (flat, BNLH join)
|
1 SIMPLE t1 hash_ALL NULL #hash#$hj 5 test.t0.b 3 100.00 Using where; Using join buffer (flat, BNLH join)
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BKA join)
|
1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t7 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
|
1 SIMPLE t7 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
@ -1015,11 +1015,11 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 SIMPLE t1 hash_ALL NULL #hash#$hj 5 test.t0.b 3 100.00 Using where; Using join buffer (flat, BNLH join)
|
1 SIMPLE t1 hash_ALL NULL #hash#$hj 5 test.t0.b 3 100.00 Using where; Using join buffer (flat, BNLH join)
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BKA join)
|
1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t7 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
|
1 SIMPLE t7 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BKA join)
|
1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on((((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`)) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on((((`test`.`t6`.`b` < 10) and ((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`))) and (`test`.`t5`.`b` is not null)))) on((((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`)) and (`test`.`t5`.`b` is not null)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on((((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`)) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on((((`test`.`t6`.`b` < 10) and ((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`))) and (`test`.`t5`.`b` is not null)))) on((((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`)) and (`test`.`t5`.`b` is not null)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||||
@ -1062,14 +1062,14 @@ t0.b=t1.b AND
|
|||||||
(t9.a=1);
|
(t9.a=1);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE t0 ref idx_a idx_a 5 const 1 100.00 Using where
|
1 SIMPLE t0 ref idx_a idx_a 5 const 1 100.00 Using where
|
||||||
1 SIMPLE t1 ref idx_b idx_b 5 test.t0.b 2 100.00 Using join buffer (flat, BKA join)
|
1 SIMPLE t1 ref idx_b idx_b 5 test.t0.b 2 100.00 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BKA join)
|
1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t5 ALL idx_b NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t7 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
|
1 SIMPLE t7 hash_ALL NULL #hash#$hj 5 test.t5.b 2 100.00 Using where; Using join buffer (incremental, BNLH join)
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t8 ref idx_b idx_b 5 test.t7.b 2 100.00 Using where; Using join buffer (incremental, BKA join)
|
1 SIMPLE t8 ref idx_b idx_b 5 test.t7.b 2 100.00 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on((((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`)) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on((((`test`.`t6`.`b` < 10) and ((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`))) and (`test`.`t7`.`b` is not null)))) on((((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`)) and (`test`.`t5`.`b` is not null)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on((((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`)) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on((((`test`.`t6`.`b` < 10) and ((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`))) and (`test`.`t7`.`b` is not null)))) on((((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`)) and (`test`.`t5`.`b` is not null)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t9`.`b` = `test`.`t8`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||||
@ -1452,27 +1452,27 @@ explain select * from t4 join
|
|||||||
t2 left join (t3 join t5 on t5.a=t3.b) on t3.a=t2.b where t4.a<=>t3.b;
|
t2 left join (t3 join t5 on t5.a=t3.b) on t3.a=t2.b where t4.a<=>t3.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL X
|
1 SIMPLE t2 ALL NULL NULL NULL NULL X
|
||||||
1 SIMPLE t3 ref a a 5 test.t2.b X Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t3 ref a a 5 test.t2.b X Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t5 ref a a 5 test.t3.b X Using join buffer (incremental, BKA join)
|
1 SIMPLE t5 ref a a 5 test.t3.b X Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t4 ref a a 5 test.t3.b X Using index condition(BKA); Using join buffer (incremental, BKA join)
|
1 SIMPLE t4 ref a a 5 test.t3.b X Using index condition(BKA); Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
explain select * from (t4 join t6 on t6.a=t4.b) right join t3 on t4.a=t3.b
|
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;
|
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
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL X
|
1 SIMPLE t2 ALL NULL NULL NULL NULL X
|
||||||
1 SIMPLE t3 ref a a 5 test.t2.b X Using index condition(BKA); Using join buffer (flat, BKA join)
|
1 SIMPLE t3 ref a a 5 test.t2.b X Using index condition(BKA); Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t4 ref a a 5 test.t3.b X Using where; Using join buffer (incremental, BKA join)
|
1 SIMPLE t4 ref a a 5 test.t3.b X Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t6 ref a a 5 test.t4.b X Using join buffer (incremental, BKA join)
|
1 SIMPLE t6 ref a a 5 test.t4.b X Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t5 ref a a 5 test.t2.b X Using where; Using join buffer (incremental, BKA join)
|
1 SIMPLE t5 ref a a 5 test.t2.b X Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t7 ref a a 5 test.t5.b X Using join buffer (incremental, BKA join)
|
1 SIMPLE t7 ref a a 5 test.t5.b X Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
explain select * from t2 left join
|
explain select * from t2 left join
|
||||||
(t3 left join (t4 join t6 on t6.a=t4.b) on t4.a=t3.b
|
(t3 left join (t4 join t6 on t6.a=t4.b) on t4.a=t3.b
|
||||||
join t5 on t5.a=t3.b) on t3.a=t2.b;
|
join t5 on t5.a=t3.b) on t3.a=t2.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL X
|
1 SIMPLE t2 ALL NULL NULL NULL NULL X
|
||||||
1 SIMPLE t3 ref a a 5 test.t2.b X Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t3 ref a a 5 test.t2.b X Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t5 ref a a 5 test.t3.b X Using join buffer (incremental, BKA join)
|
1 SIMPLE t5 ref a a 5 test.t3.b X Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t4 ref a a 5 test.t5.a X Using where; Using join buffer (incremental, BKA join)
|
1 SIMPLE t4 ref a a 5 test.t5.a X Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t6 ref a a 5 test.t4.b X Using join buffer (incremental, BKA join)
|
1 SIMPLE t6 ref a a 5 test.t4.b X Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
drop table t0, t1, t2, t3, t4, t5, t6, t7;
|
drop table t0, t1, t2, t3, t4, t5, t6, t7;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||||
@ -1485,8 +1485,8 @@ explain select * from t1 left join
|
|||||||
on (t1.a = t2.a);
|
on (t1.a = t2.a);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 10
|
||||||
1 SIMPLE t2 ref a a 5 test.t1.a 1 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t2 ref a a 5 test.t1.a 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t3 ref a a 5 test.t1.a 1 Using where; Using join buffer (incremental, BKA join)
|
1 SIMPLE t3 ref a a 5 test.t1.a 1 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, type varchar(10));
|
CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, type varchar(10));
|
||||||
CREATE TABLE t2 (pid int NOT NULL PRIMARY KEY, type varchar(10));
|
CREATE TABLE t2 (pid int NOT NULL PRIMARY KEY, type varchar(10));
|
||||||
@ -1737,7 +1737,7 @@ LEFT JOIN
|
|||||||
ON t4.carrier = t1.carrier;
|
ON t4.carrier = t1.carrier;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 index package_id package_id 5 NULL 45 Using where; Using index
|
1 SIMPLE t2 index package_id package_id 5 NULL 45 Using where; Using index
|
||||||
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.package_id 1 Using join buffer (flat, BKA join)
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.package_id 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t4 eq_ref PRIMARY,id PRIMARY 2 test.t1.carrier 1 Using where
|
1 SIMPLE t4 eq_ref PRIMARY,id PRIMARY 2 test.t1.carrier 1 Using where
|
||||||
1 SIMPLE t5 ref carrier_id carrier_id 5 test.t4.id 22 Using index
|
1 SIMPLE t5 ref carrier_id carrier_id 5 test.t4.id 22 Using index
|
||||||
1 SIMPLE t3 ref package_id package_id 5 test.t2.package_id 1 Using index
|
1 SIMPLE t3 ref package_id package_id 5 test.t2.package_id 1 Using index
|
||||||
@ -1831,9 +1831,9 @@ ON t6.b >= 2 AND t5.b=t7.b AND
|
|||||||
(t8.a > 0 OR t8.c IS NULL);
|
(t8.a > 0 OR t8.c IS NULL);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t5 ALL NULL NULL NULL NULL 3
|
1 SIMPLE t5 ALL NULL NULL NULL NULL 3
|
||||||
1 SIMPLE t7 ref b_i b_i 5 test.t5.b 2 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t7 ref b_i b_i 5 test.t5.b 2 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t6 ALL b_i NULL NULL NULL 3 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t6 ALL b_i NULL NULL NULL 3 Using where; Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t8 ref b_i b_i 5 test.t5.b 2 Using where; Using join buffer (incremental, BKA join)
|
1 SIMPLE t8 ref b_i b_i 5 test.t5.b 2 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
|
SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
|
||||||
FROM t5
|
FROM t5
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
@ -1867,7 +1867,7 @@ ON (t5.b=t8.b);
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t5 ALL NULL NULL NULL NULL 2
|
1 SIMPLE t5 ALL NULL NULL NULL NULL 2
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 1 Using join buffer (flat, BNL join)
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 1 Using join buffer (flat, BNL join)
|
||||||
1 SIMPLE t7 const PRIMARY PRIMARY 4 const 1 Using join buffer (incremental, BKA join)
|
1 SIMPLE t7 const PRIMARY PRIMARY 4 const 1 Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t8 ALL b_i NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t8 ALL b_i NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join)
|
||||||
SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
|
SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
|
||||||
FROM t5 LEFT JOIN
|
FROM t5 LEFT JOIN
|
||||||
@ -1884,7 +1884,7 @@ ON (t5.b=t8.b);
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t5 ALL NULL NULL NULL NULL 2
|
1 SIMPLE t5 ALL NULL NULL NULL NULL 2
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 1 Using join buffer (flat, BNL join)
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 1 Using join buffer (flat, BNL join)
|
||||||
1 SIMPLE t7 ref b_i b_i 5 const 0 Using join buffer (incremental, BKA join)
|
1 SIMPLE t7 ref b_i b_i 5 const 0 Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t8 ALL b_i NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join)
|
1 SIMPLE t8 ALL b_i NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join)
|
||||||
SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
|
SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
|
||||||
FROM t5 LEFT JOIN
|
FROM t5 LEFT JOIN
|
||||||
@ -1902,7 +1902,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t5 ALL NULL NULL NULL NULL 2
|
1 SIMPLE t5 ALL NULL NULL NULL NULL 2
|
||||||
1 SIMPLE t8 ALL b_i NULL NULL NULL 1 Using where; Using join buffer (flat, BNL join)
|
1 SIMPLE t8 ALL b_i NULL NULL NULL 1 Using where; Using join buffer (flat, BNL join)
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 1 Using join buffer (incremental, BNL join)
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 1 Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t7 const PRIMARY PRIMARY 4 const 1 Using join buffer (incremental, BKA join)
|
1 SIMPLE t7 const PRIMARY PRIMARY 4 const 1 Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
|
SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
|
||||||
FROM t5 LEFT JOIN
|
FROM t5 LEFT JOIN
|
||||||
(t8, t6 LEFT JOIN t7 ON t7.a=1)
|
(t8, t6 LEFT JOIN t7 ON t7.a=1)
|
||||||
|
@ -102,7 +102,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
explain select t1.*,t2.* from t1 left join t2 on t1.a=t2.a where isnull(t2.a)=1;
|
explain select t1.*,t2.* from t1 left join t2 on t1.a=t2.a where isnull(t2.a)=1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 7
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 7
|
||||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 8 test.t1.a 1 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 8 test.t1.a 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
select t1.*,t2.*,t3.a from t1 left join t2 on (t1.a=t2.a) left join t1 as t3 on (t2.a=t3.a);
|
select t1.*,t2.*,t3.a from t1 left join t2 on (t1.a=t2.a) left join t1 as t3 on (t2.a=t3.a);
|
||||||
grp a c id a c d a
|
grp a c id a c d a
|
||||||
1 1 a 1 1 a 1 1
|
1 1 a 1 1 a 1 1
|
||||||
@ -745,13 +745,13 @@ explain select s.*, '*', m.*, (s.match_1_h - m.home) UUX from
|
|||||||
order by m.match_id desc;
|
order by m.match_id desc;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE s ALL NULL NULL NULL NULL 10 Using temporary; Using filesort
|
1 SIMPLE s ALL NULL NULL NULL NULL 10 Using temporary; Using filesort
|
||||||
1 SIMPLE m const match_id,match_id_2 match_id 1 const 1 Using join buffer (flat, BKA join)
|
1 SIMPLE m const match_id,match_id_2 match_id 1 const 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
explain select s.*, '*', m.*, (s.match_1_h - m.home) UUX from
|
explain select s.*, '*', m.*, (s.match_1_h - m.home) UUX from
|
||||||
(t2 s left join t1 m on m.match_id = 1)
|
(t2 s left join t1 m on m.match_id = 1)
|
||||||
order by UUX desc;
|
order by UUX desc;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE s ALL NULL NULL NULL NULL 10 Using temporary; Using filesort
|
1 SIMPLE s ALL NULL NULL NULL NULL 10 Using temporary; Using filesort
|
||||||
1 SIMPLE m const match_id,match_id_2 match_id 1 const 1 Using join buffer (flat, BKA join)
|
1 SIMPLE m const match_id,match_id_2 match_id 1 const 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
select s.*, '*', m.*, (s.match_1_h - m.home) UUX from
|
select s.*, '*', m.*, (s.match_1_h - m.home) UUX from
|
||||||
(t2 s left join t1 m on m.match_id = 1)
|
(t2 s left join t1 m on m.match_id = 1)
|
||||||
order by UUX desc;
|
order by UUX desc;
|
||||||
@ -771,7 +771,7 @@ t2 s straight_join t1 m where m.match_id = 1
|
|||||||
order by UUX desc;
|
order by UUX desc;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE s ALL NULL NULL NULL NULL 10 Using temporary; Using filesort
|
1 SIMPLE s ALL NULL NULL NULL NULL 10 Using temporary; Using filesort
|
||||||
1 SIMPLE m const match_id,match_id_2 match_id 1 const 1 Using join buffer (flat, BKA join)
|
1 SIMPLE m const match_id,match_id_2 match_id 1 const 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
select s.*, '*', m.*, (s.match_1_h - m.home) UUX from
|
select s.*, '*', m.*, (s.match_1_h - m.home) UUX from
|
||||||
t2 s straight_join t1 m where m.match_id = 1
|
t2 s straight_join t1 m where m.match_id = 1
|
||||||
order by UUX desc;
|
order by UUX desc;
|
||||||
@ -1134,15 +1134,15 @@ a b a b
|
|||||||
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a = t2.a OR t1.a = t2.b;
|
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a = t2.a OR t1.a = t2.b;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4
|
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4
|
||||||
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using join buffer (flat, BKA join)
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a IN(t2.a, t2.b);
|
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a IN(t2.a, t2.b);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4 Using where
|
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4 Using where
|
||||||
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using join buffer (flat, BKA join)
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a > IF(t1.a = t2.b-2, t2.b, t2.b-1);
|
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a > IF(t1.a = t2.b-2, t2.b, t2.b-1);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4 Using where
|
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4 Using where
|
||||||
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using join buffer (flat, BKA join)
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
DROP VIEW IF EXISTS v1,v2;
|
DROP VIEW IF EXISTS v1,v2;
|
||||||
DROP TABLE IF EXISTS t1,t2;
|
DROP TABLE IF EXISTS t1,t2;
|
||||||
@ -1231,7 +1231,7 @@ EXPLAIN
|
|||||||
SELECT t1.id, a FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.b IS NULL;
|
SELECT t1.id, a FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.b IS NULL;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
|
||||||
1 SIMPLE t2 ref idx idx 4 test.t1.id 2 Using where; Not exists; Using join buffer (flat, BKA join)
|
1 SIMPLE t2 ref idx idx 4 test.t1.id 2 Using where; Not exists; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
flush status;
|
flush status;
|
||||||
SELECT t1.id, a FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.b IS NULL;
|
SELECT t1.id, a FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.b IS NULL;
|
||||||
id a
|
id a
|
||||||
|
@ -628,7 +628,7 @@ select p from t1 where p between 1010 and 1020;
|
|||||||
p
|
p
|
||||||
explain select i from t2 where p between 1010 and 1020;
|
explain select i from t2 where p between 1010 and 1020;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 28 Using index condition; Rowid-ordered scan
|
||||||
select i from t2 where p between 1010 and 1020;
|
select i from t2 where p between 1010 and 1020;
|
||||||
i
|
i
|
||||||
1
|
1
|
||||||
|
@ -185,7 +185,7 @@ explain
|
|||||||
select * from t4 where a IS NULL and b IS NULL and (c IS NULL or c='no-such-row1'
|
select * from t4 where a IS NULL and b IS NULL and (c IS NULL or c='no-such-row1'
|
||||||
or c='no-such-row2');
|
or c='no-such-row2');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t4 range idx1 idx1 29 NULL 16 Using index condition; Using MRR
|
1 SIMPLE t4 range idx1 idx1 29 NULL 16 Using index condition; Rowid-ordered scan
|
||||||
select * from t4 where a IS NULL and b IS NULL and (c IS NULL or c='no-such-row1'
|
select * from t4 where a IS NULL and b IS NULL and (c IS NULL or c='no-such-row1'
|
||||||
or c='no-such-row2');
|
or c='no-such-row2');
|
||||||
a b c filler
|
a b c filler
|
||||||
@ -207,7 +207,7 @@ NULL NULL NULL NULL-1
|
|||||||
explain
|
explain
|
||||||
select * from t4 where (a ='b-1' or a='bb-1') and b IS NULL and (c='c-1' or c='cc-2');
|
select * from t4 where (a ='b-1' or a='bb-1') and b IS NULL and (c='c-1' or c='cc-2');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t4 range idx1 idx1 29 NULL 32 Using index condition; Using MRR
|
1 SIMPLE t4 range idx1 idx1 29 NULL 32 Using index condition; Rowid-ordered scan
|
||||||
select * from t4 where (a ='b-1' or a='bb-1') and b IS NULL and (c='c-1' or c='cc-2');
|
select * from t4 where (a ='b-1' or a='bb-1') and b IS NULL and (c='c-1' or c='cc-2');
|
||||||
a b c filler
|
a b c filler
|
||||||
b-1 NULL c-1 NULL-15
|
b-1 NULL c-1 NULL-15
|
||||||
@ -395,7 +395,7 @@ WHERE
|
|||||||
table1.col_varchar_1024_latin1_key = table2.col_varchar_10_latin1 AND table1.pk<>0 ;
|
table1.col_varchar_1024_latin1_key = table2.col_varchar_10_latin1 AND table1.pk<>0 ;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE table2 ALL NULL NULL NULL NULL 2 Using where
|
1 SIMPLE table2 ALL NULL NULL NULL NULL 2 Using where
|
||||||
1 SIMPLE table1 ref PRIMARY,col_varchar_1024_latin1_key col_varchar_1024_latin1_key 1027 test.table2.col_varchar_10_latin1 2 Using index condition(BKA); Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE table1 ref PRIMARY,col_varchar_1024_latin1_key col_varchar_1024_latin1_key 1027 test.table2.col_varchar_10_latin1 2 Using index condition(BKA); Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT count(*)
|
SELECT count(*)
|
||||||
FROM t1 AS table1, t2 AS table2
|
FROM t1 AS table1, t2 AS table2
|
||||||
WHERE
|
WHERE
|
||||||
|
@ -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
|
EXPLAIN SELECT * FROM t1 WHERE fileset_id = 2
|
||||||
AND file_code BETWEEN '0000000115' AND '0000000120' LIMIT 1;
|
AND file_code BETWEEN '0000000115' AND '0000000120' LIMIT 1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY,files PRIMARY 35 NULL 5 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t2 WHERE fileset_id = 2
|
EXPLAIN SELECT * FROM t2 WHERE fileset_id = 2
|
||||||
AND file_code = '0000000115' LIMIT 1;
|
AND file_code = '0000000115' LIMIT 1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
@ -1114,11 +1114,11 @@ count(*)
|
|||||||
29267
|
29267
|
||||||
explain select * from t1 where c between 1 and 2500;
|
explain select * from t1 where c between 1 and 2500;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range c c 5 NULL # Using index condition; Using MRR
|
1 SIMPLE t1 range c c 5 NULL # Using index condition; Rowid-ordered scan
|
||||||
update t1 set c=a;
|
update t1 set c=a;
|
||||||
explain select * from t1 where c between 1 and 2500;
|
explain select * from t1 where c between 1 and 2500;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range c c 5 NULL # Using index condition; Using MRR
|
1 SIMPLE t1 range c c 5 NULL # Using index condition; Rowid-ordered scan
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
create table t1 (id int primary key auto_increment, fk int, index index_fk (fk)) engine=MyISAM;
|
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);
|
insert into t1 (id) values (null),(null),(null),(null),(null);
|
||||||
|
@ -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
|
1 SIMPLE t1 ALL a NULL NULL NULL 5 Using where
|
||||||
explain select * from t1 force index (a) where a=0 or a=2;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range a a 4 NULL 4 Using index condition; Rowid-ordered scan
|
||||||
explain select * from t1 where c=1;
|
explain select * from t1 where c=1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref c,c_2 c 5 const 1
|
1 SIMPLE t1 ref c,c_2 c 5 const 1
|
||||||
|
@ -186,7 +186,7 @@ explain
|
|||||||
select * from t4 where a IS NULL and b IS NULL and (c IS NULL or c='no-such-row1'
|
select * from t4 where a IS NULL and b IS NULL and (c IS NULL or c='no-such-row1'
|
||||||
or c='no-such-row2');
|
or c='no-such-row2');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t4 range idx1 idx1 29 NULL 10 Using index condition; Using MRR
|
1 SIMPLE t4 range idx1 idx1 29 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
select * from t4 where a IS NULL and b IS NULL and (c IS NULL or c='no-such-row1'
|
select * from t4 where a IS NULL and b IS NULL and (c IS NULL or c='no-such-row1'
|
||||||
or c='no-such-row2');
|
or c='no-such-row2');
|
||||||
a b c filler
|
a b c filler
|
||||||
@ -208,7 +208,7 @@ NULL NULL NULL NULL-1
|
|||||||
explain
|
explain
|
||||||
select * from t4 where (a ='b-1' or a='bb-1') and b IS NULL and (c='c-1' or c='cc-2');
|
select * from t4 where (a ='b-1' or a='bb-1') and b IS NULL and (c='c-1' or c='cc-2');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t4 range idx1 idx1 29 NULL 21 Using index condition; Using MRR
|
1 SIMPLE t4 range idx1 idx1 29 NULL 21 Using index condition; Rowid-ordered scan
|
||||||
select * from t4 where (a ='b-1' or a='bb-1') and b IS NULL and (c='c-1' or c='cc-2');
|
select * from t4 where (a ='b-1' or a='bb-1') and b IS NULL and (c='c-1' or c='cc-2');
|
||||||
a b c filler
|
a b c filler
|
||||||
b-1 NULL c-1 NULL-15
|
b-1 NULL c-1 NULL-15
|
||||||
@ -403,16 +403,16 @@ insert into t1 select A.a + 10 *(B.a + 10*C.a), A.a + 10 *(B.a + 10*C.a) from t0
|
|||||||
A query that will use ICP:
|
A query that will use ICP:
|
||||||
explain select * from t1 where a < 20;
|
explain select * from t1 where a < 20;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range a a 5 NULL 20 Using index condition; Using MRR
|
1 SIMPLE t1 range a a 5 NULL 20 Using index condition; Rowid-ordered scan
|
||||||
set @save_optimizer_switch=@@optimizer_switch;
|
set @save_optimizer_switch=@@optimizer_switch;
|
||||||
set optimizer_switch='index_condition_pushdown=off';
|
set optimizer_switch='index_condition_pushdown=off';
|
||||||
explain select * from t1 where a < 20;
|
explain select * from t1 where a < 20;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range a a 5 NULL 20 Using where; Using MRR
|
1 SIMPLE t1 range a a 5 NULL 20 Using where; Rowid-ordered scan
|
||||||
set optimizer_switch='index_condition_pushdown=on';
|
set optimizer_switch='index_condition_pushdown=on';
|
||||||
explain select * from t1 where a < 20;
|
explain select * from t1 where a < 20;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range a a 5 NULL 20 Using index condition; Using MRR
|
1 SIMPLE t1 range a a 5 NULL 20 Using index condition; Rowid-ordered scan
|
||||||
set optimizer_switch=@save_optimizer_switch;
|
set optimizer_switch=@save_optimizer_switch;
|
||||||
#
|
#
|
||||||
# BUG#629684: Unreachable code in multi_range_read.cc in maria-5.3-dsmrr-cpk
|
# BUG#629684: Unreachable code in multi_range_read.cc in maria-5.3-dsmrr-cpk
|
||||||
@ -426,7 +426,7 @@ explain
|
|||||||
select * from t0, t1 where t0.a<=>t1.a;
|
select * from t0, t1 where t0.a<=>t1.a;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t0 ALL NULL NULL NULL NULL 5
|
1 SIMPLE t0 ALL NULL NULL NULL NULL 5
|
||||||
1 SIMPLE t1 ref a a 5 test.t0.a 1 Using index condition(BKA); Using join buffer (flat, BKA join)
|
1 SIMPLE t1 ref a a 5 test.t0.a 1 Using index condition(BKA); Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
select * from t0, t1 where t0.a<=>t1.a;
|
select * from t0, t1 where t0.a<=>t1.a;
|
||||||
a a b
|
a a b
|
||||||
0 0 0
|
0 0 0
|
||||||
@ -504,7 +504,7 @@ table3.col_varchar_key = table2.col_varchar_nokey AND
|
|||||||
table3.pk<>0;
|
table3.pk<>0;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE table2 ALL col_varchar_key NULL NULL NULL 20 Using where
|
1 SIMPLE table2 ALL col_varchar_key NULL NULL NULL 20 Using where
|
||||||
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)
|
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_cache_level= @save_join_cache_level;
|
||||||
set join_buffer_size= @save_join_buffer_size;
|
set join_buffer_size= @save_join_buffer_size;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -148,10 +148,10 @@ insert into t1 values
|
|||||||
(7,7), (8,8), (9,9), (10,10), (11,11), (12,12);
|
(7,7), (8,8), (9,9), (10,10), (11,11), (12,12);
|
||||||
explain select * from t1 where a between 2 and 3;
|
explain select * from t1 where a between 2 and 3;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range idx idx 4 NULL 2 Using index condition; Rowid-ordered scan
|
||||||
explain select * from t1 where a between 2 and 3 or b is null;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range idx idx 4 NULL 2 Using index condition; Rowid-ordered scan
|
||||||
drop table t1;
|
drop table t1;
|
||||||
select cast(NULL as signed);
|
select cast(NULL as signed);
|
||||||
cast(NULL as signed)
|
cast(NULL as signed)
|
||||||
|
@ -611,7 +611,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
|
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;
|
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
|
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; Using MRR; Using filesort
|
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;
|
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
|
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
|
1 SIMPLE t1 range StringField StringField 38 NULL 4 Using where; Using filesort
|
||||||
@ -1112,7 +1112,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
|
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;
|
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
|
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; Using where; Using MRR; Using filesort
|
1 SIMPLE t2 range k2 k2 5 NULL 386 Using index condition; Using where; Rowid-ordered scan; Using filesort
|
||||||
SELECT id,c3 FROM t2 WHERE c2=11 ORDER BY c3 LIMIT 20;
|
SELECT id,c3 FROM t2 WHERE c2=11 ORDER BY c3 LIMIT 20;
|
||||||
id c3
|
id c3
|
||||||
6 14
|
6 14
|
||||||
@ -1607,19 +1607,19 @@ INSERT INTO t2 SELECT a+4, b FROM t2;
|
|||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM t1 FORCE INDEX FOR ORDER BY (a), t2 WHERE t1.a < 2 ORDER BY t1.a;
|
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
|
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; Using MRR; Using temporary; Using filesort
|
1 SIMPLE t1 range a a 5 NULL 2 Using index condition; Rowid-ordered scan; Using temporary; Using filesort
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
|
||||||
# should have "using filesort"
|
# should have "using filesort"
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM t1 USE INDEX FOR ORDER BY (a), t2 WHERE t1.a < 2 ORDER BY t1.a;
|
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
|
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; Using MRR; Using temporary; Using filesort
|
1 SIMPLE t1 range a a 5 NULL 2 Using index condition; Rowid-ordered scan; Using temporary; Using filesort
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
|
||||||
# should have "using filesort"
|
# should have "using filesort"
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM t1 FORCE INDEX FOR JOIN (a), t2 WHERE t1.a < 2 ORDER BY t1.a;
|
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
|
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; Using MRR; Using temporary; Using filesort
|
1 SIMPLE t1 range a a 5 NULL 2 Using index condition; Rowid-ordered scan; Using temporary; Using filesort
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 10 Using join buffer (flat, BNL join)
|
||||||
DROP TABLE t1, t2;
|
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 key_len 253 4096 1 Y 0 31 8
|
||||||
def ref 253 2048 0 Y 0 31 8
|
def ref 253 2048 0 Y 0 31 8
|
||||||
def rows 8 10 1 Y 32928 0 63
|
def rows 8 10 1 Y 32928 0 63
|
||||||
def Extra 253 255 48 N 1 31 8
|
def Extra 253 255 57 N 1 31 8
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR; Using filesort
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 Using index condition; Rowid-ordered scan; Using filesort
|
||||||
drop table if exists t2;
|
drop table if exists t2;
|
||||||
create table t2 (id smallint, name varchar(20)) ;
|
create table t2 (id smallint, name varchar(20)) ;
|
||||||
prepare stmt1 from ' insert into t2 values(?, ?) ' ;
|
prepare stmt1 from ' insert into t2 values(?, ?) ' ;
|
||||||
|
@ -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;
|
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
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref y y 5 const 1
|
1 SIMPLE t1 ref y y 5 const 1
|
||||||
1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Using MRR; Using join buffer (flat, BNL join)
|
1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Rowid-ordered scan; 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;
|
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
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref y y 5 const 1
|
1 SIMPLE t1 ref y y 5 const 1
|
||||||
1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Using MRR; Using join buffer (flat, BNL join)
|
1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Rowid-ordered scan; 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;
|
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
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref y y 5 const 1
|
1 SIMPLE t1 ref y y 5 const 1
|
||||||
1 SIMPLE t2 range x x 5 NULL 3 Using index condition; Using MRR; Using join buffer (flat, BNL join)
|
1 SIMPLE t2 range x x 5 NULL 3 Using index condition; Rowid-ordered scan; 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;
|
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
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref y y 5 const 1
|
1 SIMPLE t1 ref y y 5 const 1
|
||||||
1 SIMPLE t2 range x x 5 NULL 3 Using index condition; Using MRR; Using join buffer (flat, BNL join)
|
1 SIMPLE t2 range x x 5 NULL 3 Using index condition; Rowid-ordered scan; Using join buffer (flat, BNL join)
|
||||||
explain select * from t1, t1 t2 where t1.y = 2 and t2.x between 0 and t1.y;
|
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
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref y y 5 const 1
|
1 SIMPLE t1 ref y y 5 const 1
|
||||||
1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Using MRR; Using join buffer (flat, BNL join)
|
1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Rowid-ordered scan; 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;
|
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
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref y y 5 const 1
|
1 SIMPLE t1 ref y y 5 const 1
|
||||||
1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Using MRR; Using join buffer (flat, BNL join)
|
1 SIMPLE t2 range x x 5 NULL 2 Using index condition; Rowid-ordered scan; Using join buffer (flat, BNL join)
|
||||||
explain select count(*) from t1 where x in (1);
|
explain select count(*) from t1 where x in (1);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ref x x 5 const 1 Using index
|
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);
|
(33,5),(33,5),(33,5),(33,5),(34,5),(35,5);
|
||||||
EXPLAIN SELECT * FROM t1 WHERE a IN(1,2) AND b=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
|
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; Using MRR
|
1 SIMPLE t1 range a,b a 5 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||||
SELECT * FROM t1 WHERE a IN(1,2) AND b=5;
|
SELECT * FROM t1 WHERE a IN(1,2) AND b=5;
|
||||||
a b
|
a b
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
@ -421,19 +421,19 @@ test.t1 analyze status OK
|
|||||||
test.t2 analyze status Table is already up to date
|
test.t2 analyze status Table is already up to date
|
||||||
explain select * from t1, t2 where t1.uid=t2.uid AND t1.uid > 0;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range uid_index uid_index 4 NULL 112 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 38
|
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;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range uid_index uid_index 4 NULL 112 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 38
|
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;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range uid_index uid_index 4 NULL 113 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 38
|
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;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range uid_index uid_index 4 NULL 113 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 38
|
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;
|
select * from t1, t2 where t1.uid=t2.uid AND t1.uid > 0;
|
||||||
id name uid id name uid
|
id name uid id name uid
|
||||||
@ -618,10 +618,10 @@ 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 index condition
|
||||||
explain select * from t1 where a=binary 'aaa';
|
explain select * from t1 where a=binary 'aaa';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range a a 11 NULL 2 Using index condition; Rowid-ordered scan
|
||||||
explain select * from t1 where a='aaa' collate latin1_bin;
|
explain select * from t1 where a='aaa' collate latin1_bin;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range a a 11 NULL 2 Using index condition; Rowid-ordered scan
|
||||||
explain select * from t1 where a='aaa' collate latin1_german1_ci;
|
explain select * from t1 where a='aaa' collate latin1_german1_ci;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL a NULL NULL NULL 9 Using where
|
1 SIMPLE t1 ALL a NULL NULL NULL 9 Using where
|
||||||
@ -878,10 +878,10 @@ INSERT INTO t1 VALUES
|
|||||||
(55,'C'), (56,'C'), (57,'C'), (58,'C'), (59,'C'), (60,'C');
|
(55,'C'), (56,'C'), (57,'C'), (58,'C'), (59,'C'), (60,'C');
|
||||||
EXPLAIN SELECT * FROM t1 WHERE status <> 'A' AND status <> 'B';
|
EXPLAIN SELECT * FROM t1 WHERE status <> 'A' AND status <> 'B';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range status status 23 NULL 11 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE status NOT IN ('A','B');
|
EXPLAIN SELECT * FROM t1 WHERE status NOT IN ('A','B');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range status status 23 NULL 11 Using index condition; Rowid-ordered scan
|
||||||
SELECT * FROM t1 WHERE status <> 'A' AND status <> 'B';
|
SELECT * FROM t1 WHERE status <> 'A' AND status <> 'B';
|
||||||
id status
|
id status
|
||||||
53 C
|
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
|
1 SIMPLE t1 range status status 23 NULL 11 Using where; Using index
|
||||||
EXPLAIN SELECT * FROM t1 WHERE status NOT BETWEEN 'A' AND 'B';
|
EXPLAIN SELECT * FROM t1 WHERE status NOT BETWEEN 'A' AND 'B';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range status status 23 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE status < 'A' OR status > 'B';
|
EXPLAIN SELECT * FROM t1 WHERE status < 'A' OR status > 'B';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range status status 23 NULL 10 Using index condition; Rowid-ordered scan
|
||||||
SELECT * FROM t1 WHERE status NOT BETWEEN 'A' AND 'B';
|
SELECT * FROM t1 WHERE status NOT BETWEEN 'A' AND 'B';
|
||||||
id status
|
id status
|
||||||
53 C
|
53 C
|
||||||
@ -1014,10 +1014,10 @@ create table t2 (a varchar(10), filler char(200), key(a));
|
|||||||
insert into t2 select * from t1;
|
insert into t2 select * from t1;
|
||||||
explain select * from t1 where a between 'a' and 'a ';
|
explain select * from t1 where a between 'a' and 'a ';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range a a 13 NULL # Using index condition; Using MRR
|
1 SIMPLE t1 range a a 13 NULL # Using index condition; Rowid-ordered scan
|
||||||
explain select * from t1 where a = 'a' or a='a ';
|
explain select * from t1 where a = 'a' or a='a ';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range a a 13 NULL # Using index condition; Using MRR
|
1 SIMPLE t1 range a a 13 NULL # Using index condition; Rowid-ordered scan
|
||||||
explain select * from t2 where a between 'a' and 'a ';
|
explain select * from t2 where a between 'a' and 'a ';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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 index condition
|
||||||
@ -1027,7 +1027,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
update t1 set a='b' where a<>'a';
|
update t1 set a='b' where a<>'a';
|
||||||
explain select * from t1 where a not between 'b' and 'b';
|
explain select * from t1 where a not between 'b' and 'b';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range a a 13 NULL # Using index condition; Using MRR
|
1 SIMPLE t1 range a a 13 NULL # Using index condition; Rowid-ordered scan
|
||||||
select a, hex(filler) from t1 where a not between 'b' and 'b';
|
select a, hex(filler) from t1 where a not between 'b' and 'b';
|
||||||
a hex(filler)
|
a hex(filler)
|
||||||
a 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
a 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
@ -1071,10 +1071,10 @@ id b c
|
|||||||
0 3 4
|
0 3 4
|
||||||
EXPLAIN SELECT * FROM t1 WHERE b<=3 AND 3<=c;
|
EXPLAIN SELECT * FROM t1 WHERE b<=3 AND 3<=c;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range idx1,idx2 idx2 4 NULL 3 Using index condition; Using where; Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1 WHERE 3 BETWEEN b AND c;
|
EXPLAIN SELECT * FROM t1 WHERE 3 BETWEEN b AND c;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range idx1,idx2 idx2 4 NULL 3 Using where; Rowid-ordered scan
|
||||||
SELECT * FROM t1 WHERE 0 < b OR 0 > c;
|
SELECT * FROM t1 WHERE 0 < b OR 0 > c;
|
||||||
id b c
|
id b c
|
||||||
0 3 4
|
0 3 4
|
||||||
@ -1151,7 +1151,7 @@ INSERT INTO t1 VALUES
|
|||||||
This must use range access:
|
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';
|
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
|
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; Using MRR
|
1 SIMPLE t1 range dateval dateval 4 NULL 2 Using index condition; Rowid-ordered scan
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
a varchar(32), index (a)
|
a varchar(32), index (a)
|
||||||
|
@ -49,14 +49,14 @@ SELECT * FROM City
|
|||||||
WHERE (Population >= 100000 OR Name LIKE 'P%') AND Country='CAN' OR
|
WHERE (Population >= 100000 OR Name LIKE 'P%') AND Country='CAN' OR
|
||||||
(Population < 100000 OR Name Like 'T%') AND Country='ARG';
|
(Population < 100000 OR Name Like 'T%') AND Country='ARG';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population,Country,Name Country 3 NULL 104 Using index condition; Using where; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE Population < 200000 AND Name LIKE 'P%' AND
|
WHERE Population < 200000 AND Name LIKE 'P%' AND
|
||||||
(Population > 300000 OR Name LIKE 'T%') AND
|
(Population > 300000 OR Name LIKE 'T%') AND
|
||||||
(Population < 100000 OR Name LIKE 'Pa%');
|
(Population < 100000 OR Name LIKE 'Pa%');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population,Name Name 35 NULL 135 Using index condition; Using where; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE Population > 100000 AND Name LIKE 'Aba%' OR
|
WHERE Population > 100000 AND Name LIKE 'Aba%' OR
|
||||||
@ -69,12 +69,12 @@ EXPLAIN
|
|||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE (Population > 101000 AND Population < 115000);
|
WHERE (Population > 101000 AND Population < 115000);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population Population 4 NULL 459 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE (Population > 101000 AND Population < 102000);
|
WHERE (Population > 101000 AND Population < 102000);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population Population 4 NULL 39 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'));
|
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'))
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
||||||
AND (Population > 101000 AND Population < 102000);
|
AND (Population > 101000 AND Population < 102000);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population,Country,Name Population 4 NULL 39 Using index condition; Using where; Rowid-ordered scan
|
||||||
SELECT * FROM City USE INDEX ()
|
SELECT * FROM City USE INDEX ()
|
||||||
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
||||||
AND (Population > 101000 AND Population < 115000);
|
AND (Population > 101000 AND Population < 115000);
|
||||||
@ -171,37 +171,37 @@ ID Name Country Population
|
|||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Name < 'Ac');
|
SELECT * FROM City WHERE (Name < 'Ac');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 13 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Name < 'Bb');
|
SELECT * FROM City WHERE (Name < 'Bb');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 208 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Country > 'A' AND Country < 'B');
|
SELECT * FROM City WHERE (Country > 'A' AND Country < 'B');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Country Country 3 NULL 104 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Name BETWEEN 'P' AND 'Pb');
|
SELECT * FROM City WHERE (Name BETWEEN 'P' AND 'Pb');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 39 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Name BETWEEN 'P' AND 'S');
|
SELECT * FROM City WHERE (Name BETWEEN 'P' AND 'S');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 221 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Population > 101000 AND Population < 110000);
|
SELECT * FROM City WHERE (Population > 101000 AND Population < 110000);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population Population 4 NULL 328 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Population > 103000 AND Population < 104000);
|
SELECT * FROM City WHERE (Population > 103000 AND Population < 104000);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population Population 4 NULL 37 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
||||||
(Name BETWEEN 'P' AND 'Pb' AND (Population > 101000 AND Population < 110000));
|
(Name BETWEEN 'P' AND 'Pb' AND (Population > 101000 AND Population < 110000));
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population,Country,Name Name 35 NULL 52 Using index condition; Using where; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
||||||
@ -327,11 +327,11 @@ ID Name Country Population
|
|||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (ID < 10) OR (ID BETWEEN 100 AND 110);
|
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
|
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; Using MRR
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 21 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (ID < 200) OR (ID BETWEEN 100 AND 200);
|
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
|
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; Using MRR
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 201 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (ID < 600) OR (ID BETWEEN 900 AND 1500);
|
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
|
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
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Country > 'A' AND Country < 'ARG';
|
SELECT * FROM City WHERE Country > 'A' AND Country < 'ARG';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Country Country 3 NULL 19 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Name LIKE 'H%' OR Name LIKE 'P%' ;
|
SELECT * FROM City WHERE Name LIKE 'H%' OR Name LIKE 'P%' ;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 222 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Name LIKE 'Ha%' OR Name LIKE 'Pa%' ;
|
SELECT * FROM City WHERE Name LIKE 'Ha%' OR Name LIKE 'Pa%' ;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 72 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ((ID < 10) AND (Name LIKE 'H%' OR (Country > 'A' AND Country < 'ARG')))
|
WHERE ((ID < 10) AND (Name LIKE 'H%' OR (Country > 'A' AND Country < 'ARG')))
|
||||||
OR ((ID BETWEEN 100 AND 110) AND
|
OR ((ID BETWEEN 100 AND 110) AND
|
||||||
(Name LIKE 'P%' OR (Population > 103000 AND Population < 104000)));
|
(Name LIKE 'P%' OR (Population > 103000 AND Population < 104000)));
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range PRIMARY,Population,Country,Name PRIMARY 4 NULL 21 Using index condition; Using where; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ((ID < 800) AND (Name LIKE 'Ha%' OR (Country > 'A' AND Country < 'ARG')))
|
WHERE ((ID < 800) AND (Name LIKE 'Ha%' OR (Country > 'A' AND Country < 'ARG')))
|
||||||
@ -576,39 +576,39 @@ ID Name Country Population
|
|||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Population > 101000 AND Population < 102000;
|
SELECT * FROM City WHERE Population > 101000 AND Population < 102000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population Population 4 NULL 39 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Population > 101000 AND Population < 110000;
|
SELECT * FROM City WHERE Population > 101000 AND Population < 110000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population Population 4 NULL 328 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Country < 'C';
|
SELECT * FROM City WHERE Country < 'C';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Country Country 3 NULL 436 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Country < 'AGO';
|
SELECT * FROM City WHERE Country < 'AGO';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Country Country 3 NULL 6 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Name BETWEEN 'P' AND 'S';
|
SELECT * FROM City WHERE Name BETWEEN 'P' AND 'S';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 221 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Name BETWEEN 'P' AND 'Pb';
|
SELECT * FROM City WHERE Name BETWEEN 'P' AND 'Pb';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 39 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE ID BETWEEN 3400 AND 3800;
|
SELECT * FROM City WHERE ID BETWEEN 3400 AND 3800;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 401 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE ID BETWEEN 3790 AND 3800;
|
SELECT * FROM City WHERE ID BETWEEN 3790 AND 3800;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 11 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Name LIKE 'P%';
|
SELECT * FROM City WHERE Name LIKE 'P%';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 135 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ((Population > 101000 AND Population < 102000) AND
|
WHERE ((Population > 101000 AND Population < 102000) AND
|
||||||
@ -679,15 +679,15 @@ CREATE INDEX CountryPopulation ON City(Country,Population);
|
|||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Name LIKE 'Pas%';
|
SELECT * FROM City WHERE Name LIKE 'Pas%';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 5 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Name LIKE 'P%';
|
SELECT * FROM City WHERE Name LIKE 'P%';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 135 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Population > 101000 AND Population < 103000);
|
SELECT * FROM City WHERE (Population > 101000 AND Population < 103000);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population Population 4 NULL 81 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Country='USA';
|
SELECT * FROM City WHERE Country='USA';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
@ -764,39 +764,39 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE ID BETWEEN 3790 AND 3800;
|
SELECT * FROM City WHERE ID BETWEEN 3790 AND 3800;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 11 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE ID BETWEEN 4025 AND 4035;
|
SELECT * FROM City WHERE ID BETWEEN 4025 AND 4035;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 11 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE ID BETWEEN 4028 AND 4032;
|
SELECT * FROM City WHERE ID BETWEEN 4028 AND 4032;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 5 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE ID BETWEEN 3500 AND 3800;
|
SELECT * FROM City WHERE ID BETWEEN 3500 AND 3800;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 301 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE ID BETWEEN 4000 AND 4300;
|
SELECT * FROM City WHERE ID BETWEEN 4000 AND 4300;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 80 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE ID BETWEEN 250 and 260 ;
|
SELECT * FROM City WHERE ID BETWEEN 250 and 260 ;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range PRIMARY PRIMARY 4 NULL 11 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Population > 101000 AND Population < 102000);
|
SELECT * FROM City WHERE (Population > 101000 AND Population < 102000);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population Population 4 NULL 39 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Population > 101000 AND Population < 103000);
|
SELECT * FROM City WHERE (Population > 101000 AND Population < 103000);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population Population 4 NULL 81 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Name LIKE 'Pa%';
|
SELECT * FROM City WHERE Name LIKE 'Pa%';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 41 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ((Population > 101000 AND Population < 102000) OR
|
WHERE ((Population > 101000 AND Population < 102000) OR
|
||||||
@ -949,14 +949,14 @@ WHERE ((Population > 101000 AND Population < 11000) OR
|
|||||||
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
||||||
AND (Name LIKE 'P%' OR ID BETWEEN 4000 AND 4300);
|
AND (Name LIKE 'P%' OR ID BETWEEN 4000 AND 4300);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range PRIMARY,Population,Country,Name,CountryPopulation,CountryName CountryName 38 NULL 23 Using index condition; Using where; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ((Population > 101000 AND Population < 11000) OR
|
WHERE ((Population > 101000 AND Population < 11000) OR
|
||||||
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
||||||
AND (Name LIKE 'Pho%' OR ID BETWEEN 4000 AND 4300);
|
AND (Name LIKE 'Pho%' OR ID BETWEEN 4000 AND 4300);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range PRIMARY,Population,Country,Name,CountryPopulation,CountryName Name 35 NULL 1 Using where; Rowid-ordered scan
|
||||||
SELECT * FROM City USE INDEX ()
|
SELECT * FROM City USE INDEX ()
|
||||||
WHERE ((Population > 101000 AND Population < 11000) OR
|
WHERE ((Population > 101000 AND Population < 11000) OR
|
||||||
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
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
|
WHERE (Population >= 100000 OR Name LIKE 'P%') AND Country='CAN' OR
|
||||||
(Population < 100000 OR Name Like 'T%') AND Country='ARG';
|
(Population < 100000 OR Name Like 'T%') AND Country='ARG';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population,Country,Name Country 3 NULL 106 Using index condition; Using where; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE Population < 200000 AND Name LIKE 'P%' AND
|
WHERE Population < 200000 AND Name LIKE 'P%' AND
|
||||||
(Population > 300000 OR Name LIKE 'T%') AND
|
(Population > 300000 OR Name LIKE 'T%') AND
|
||||||
(Population < 100000 OR Name LIKE 'Pa%');
|
(Population < 100000 OR Name LIKE 'Pa%');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population,Name Name 35 NULL 235 Using index condition; Using where; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE Population > 100000 AND Name LIKE 'Aba%' OR
|
WHERE Population > 100000 AND Name LIKE 'Aba%' OR
|
||||||
@ -70,12 +70,12 @@ EXPLAIN
|
|||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE (Population > 101000 AND Population < 115000);
|
WHERE (Population > 101000 AND Population < 115000);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population Population 4 NULL 458 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE (Population > 101000 AND Population < 102000);
|
WHERE (Population > 101000 AND Population < 102000);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population Population 4 NULL 38 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'));
|
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'))
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
||||||
AND (Population > 101000 AND Population < 102000);
|
AND (Population > 101000 AND Population < 102000);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population,Country,Name Population 4 NULL 38 Using index condition; Using where; Rowid-ordered scan
|
||||||
SELECT * FROM City USE INDEX ()
|
SELECT * FROM City USE INDEX ()
|
||||||
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
WHERE ((Name > 'Ca' AND Name < 'Cf') OR (Country > 'E' AND Country < 'F'))
|
||||||
AND (Population > 101000 AND Population < 115000);
|
AND (Population > 101000 AND Population < 115000);
|
||||||
@ -172,37 +172,37 @@ ID Name Country Population
|
|||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Name < 'Ac');
|
SELECT * FROM City WHERE (Name < 'Ac');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 23 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Name < 'Bb');
|
SELECT * FROM City WHERE (Name < 'Bb');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 373 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Country > 'A' AND Country < 'B');
|
SELECT * FROM City WHERE (Country > 'A' AND Country < 'B');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Country Country 3 NULL 106 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Name BETWEEN 'P' AND 'Pb');
|
SELECT * FROM City WHERE (Name BETWEEN 'P' AND 'Pb');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 71 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Name BETWEEN 'P' AND 'S');
|
SELECT * FROM City WHERE (Name BETWEEN 'P' AND 'S');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 384 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Population > 101000 AND Population < 110000);
|
SELECT * FROM City WHERE (Population > 101000 AND Population < 110000);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population Population 4 NULL 327 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Population > 103000 AND Population < 104000);
|
SELECT * FROM City WHERE (Population > 103000 AND Population < 104000);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population Population 4 NULL 36 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
||||||
(Name BETWEEN 'P' AND 'Pb' AND (Population > 101000 AND Population < 110000));
|
(Name BETWEEN 'P' AND 'Pb' AND (Population > 101000 AND Population < 110000));
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population,Country,Name Name 35 NULL 94 Using index condition; Using where; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
WHERE (Name < 'Ac' AND (Country > 'A' AND Country < 'B')) OR
|
||||||
@ -340,15 +340,15 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Country > 'A' AND Country < 'ARG';
|
SELECT * FROM City WHERE Country > 'A' AND Country < 'ARG';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Country Country 3 NULL 19 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Name LIKE 'H%' OR Name LIKE 'P%' ;
|
SELECT * FROM City WHERE Name LIKE 'H%' OR Name LIKE 'P%' ;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 394 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Name LIKE 'Ha%' OR Name LIKE 'Pa%' ;
|
SELECT * FROM City WHERE Name LIKE 'Ha%' OR Name LIKE 'Pa%' ;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 133 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ((ID < 10) AND (Name LIKE 'H%' OR (Country > 'A' AND Country < 'ARG')))
|
WHERE ((ID < 10) AND (Name LIKE 'H%' OR (Country > 'A' AND Country < 'ARG')))
|
||||||
@ -577,27 +577,27 @@ ID Name Country Population
|
|||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Population > 101000 AND Population < 102000;
|
SELECT * FROM City WHERE Population > 101000 AND Population < 102000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population Population 4 NULL 38 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Population > 101000 AND Population < 110000;
|
SELECT * FROM City WHERE Population > 101000 AND Population < 110000;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population Population 4 NULL 327 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Country < 'C';
|
SELECT * FROM City WHERE Country < 'C';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Country Country 3 NULL 446 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Country < 'AGO';
|
SELECT * FROM City WHERE Country < 'AGO';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Country Country 3 NULL 5 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Name BETWEEN 'P' AND 'S';
|
SELECT * FROM City WHERE Name BETWEEN 'P' AND 'S';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 384 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Name BETWEEN 'P' AND 'Pb';
|
SELECT * FROM City WHERE Name BETWEEN 'P' AND 'Pb';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 71 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE ID BETWEEN 3400 AND 3800;
|
SELECT * FROM City WHERE ID BETWEEN 3400 AND 3800;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Name LIKE 'P%';
|
SELECT * FROM City WHERE Name LIKE 'P%';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 235 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ((Population > 101000 AND Population < 102000) AND
|
WHERE ((Population > 101000 AND Population < 102000) AND
|
||||||
@ -680,15 +680,15 @@ CREATE INDEX CountryPopulation ON City(Country,Population);
|
|||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Name LIKE 'Pas%';
|
SELECT * FROM City WHERE Name LIKE 'Pas%';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 8 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Name LIKE 'P%';
|
SELECT * FROM City WHERE Name LIKE 'P%';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 235 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Population > 101000 AND Population < 103000);
|
SELECT * FROM City WHERE (Population > 101000 AND Population < 103000);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population Population 4 NULL 80 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Country='USA';
|
SELECT * FROM City WHERE Country='USA';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Population > 101000 AND Population < 102000);
|
SELECT * FROM City WHERE (Population > 101000 AND Population < 102000);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population Population 4 NULL 38 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE (Population > 101000 AND Population < 103000);
|
SELECT * FROM City WHERE (Population > 101000 AND Population < 103000);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Population Population 4 NULL 80 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City WHERE Name LIKE 'Pa%';
|
SELECT * FROM City WHERE Name LIKE 'Pa%';
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range Name Name 35 NULL 71 Using index condition; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ((Population > 101000 AND Population < 102000) OR
|
WHERE ((Population > 101000 AND Population < 102000) OR
|
||||||
@ -950,14 +950,14 @@ WHERE ((Population > 101000 AND Population < 11000) OR
|
|||||||
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
||||||
AND (Name LIKE 'P%' OR ID BETWEEN 4000 AND 4300);
|
AND (Name LIKE 'P%' OR ID BETWEEN 4000 AND 4300);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range PRIMARY,Population,Country,Name,CountryPopulation,CountryName CountryName 38 NULL 18 Using index condition; Using where; Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM City
|
SELECT * FROM City
|
||||||
WHERE ((Population > 101000 AND Population < 11000) OR
|
WHERE ((Population > 101000 AND Population < 11000) OR
|
||||||
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
||||||
AND (Name LIKE 'Pho%' OR ID BETWEEN 4000 AND 4300);
|
AND (Name LIKE 'Pho%' OR ID BETWEEN 4000 AND 4300);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE City range PRIMARY,Population,Country,Name,CountryPopulation,CountryName Name 35 NULL 1 Using index condition; Using where; Rowid-ordered scan
|
||||||
SELECT * FROM City USE INDEX ()
|
SELECT * FROM City USE INDEX ()
|
||||||
WHERE ((Population > 101000 AND Population < 11000) OR
|
WHERE ((Population > 101000 AND Population < 11000) OR
|
||||||
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
ID BETWEEN 3500 AND 3800) AND Country='USA'
|
||||||
|
@ -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);
|
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
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
|
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
|
||||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Rowid-ordered scan
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
CREATE TABLE t1 (i TINYINT UNSIGNED NOT NULL);
|
CREATE TABLE t1 (i TINYINT UNSIGNED NOT NULL);
|
||||||
INSERT t1 SET i = 0;
|
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
|
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);
|
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
|
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; Using MRR
|
1 SIMPLE A range PRIMARY PRIMARY 12 NULL 4 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE B ref PRIMARY PRIMARY 8 const,test.A.e 10
|
1 SIMPLE B ref PRIMARY PRIMARY 8 const,test.A.e 10
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
CREATE TABLE t1 (a int PRIMARY KEY, b int, INDEX(b));
|
CREATE TABLE t1 (a int PRIMARY KEY, b int, INDEX(b));
|
||||||
@ -3467,12 +3467,12 @@ INSERT INTO t2 VALUES
|
|||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT a, c, d, f FROM t1,t2 WHERE a=c AND b BETWEEN 4 AND 6;
|
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
|
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 MRR
|
1 SIMPLE t1 range PRIMARY,b b 5 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE t2 ref c c 5 test.t1.a 2
|
1 SIMPLE t2 ref c c 5 test.t1.a 2
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT a, c, d, f FROM t1,t2 WHERE a=c AND b BETWEEN 4 AND 6 AND a > 0;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY,b b 5 NULL 3 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t2 ref c c 5 test.t1.a 2
|
1 SIMPLE t2 ref c c 5 test.t1.a 2
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
create table t1 (
|
create table t1 (
|
||||||
@ -3562,19 +3562,19 @@ EXPLAIN SELECT t2.*
|
|||||||
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
||||||
WHERE t2.fk < 'c' AND t2.pk=t1.fk;
|
WHERE t2.fk < 'c' AND t2.pk=t1.fk;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 3 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
|
||||||
EXPLAIN SELECT t2.*
|
EXPLAIN SELECT t2.*
|
||||||
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
||||||
WHERE t2.fk BETWEEN 'a' AND 'b' AND t2.pk=t1.fk;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
|
||||||
EXPLAIN SELECT t2.*
|
EXPLAIN SELECT t2.*
|
||||||
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
||||||
WHERE t2.fk IN ('a','b') AND t2.pk=t1.fk;
|
WHERE t2.fk IN ('a','b') AND t2.pk=t1.fk;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
CREATE TABLE t1 (a int, b varchar(20) NOT NULL, PRIMARY KEY(a));
|
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');
|
t3.a=t2.a AND t3.c IN ('bb','ee');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||||
1 SIMPLE t2 range si si 5 NULL 4 Using index condition; Using where; Using MRR
|
1 SIMPLE t2 range si si 5 NULL 4 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT t3.a FROM t1,t2,t3
|
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') ;
|
t3.a=t2.a AND t3.c IN ('bb','ee') ;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||||
1 SIMPLE t2 range si,ai si 5 NULL 4 Using index condition; Using where; Using MRR
|
1 SIMPLE t2 range si,ai si 5 NULL 4 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT t3.a FROM t1,t2 FORCE INDEX (si),t3
|
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');
|
t3.c IN ('bb','ee');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||||
1 SIMPLE t2 range si si 5 NULL 2 Using index condition; Using where; Using MRR
|
1 SIMPLE t2 range si si 5 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT t3.a FROM t1,t2,t3
|
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');
|
t3.c IN ('bb','ee');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||||
1 SIMPLE t2 range si,ai si 5 NULL 2 Using index condition; Using where; Using MRR
|
1 SIMPLE t2 range si,ai si 5 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
||||||
DROP TABLE t1,t2,t3;
|
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);
|
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";
|
AND t1.ts BETWEEN "2006-01-01" AND "2006-12-31";
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
|
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
|
||||||
1 SIMPLE t1 range ts ts 4 NULL 1 Using index condition; Using where; Using MRR
|
1 SIMPLE t1 range ts ts 4 NULL 1 Using index condition; Using where; Rowid-ordered scan
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Incorrect datetime value: '2999-12-31 00:00:00' for column 'ts' at row 1
|
Warning 1292 Incorrect datetime value: '2999-12-31 00:00:00' for column 'ts' at row 1
|
||||||
SELECT * FROM t1 LEFT JOIN t2 ON (t1.a=t2.a) WHERE t1.a=30
|
SELECT * FROM t1 LEFT JOIN t2 ON (t1.a=t2.a) WHERE t1.a=30
|
||||||
@ -4376,12 +4376,12 @@ CREATE TABLE t1 (a INT KEY, b INT);
|
|||||||
INSERT INTO t1 VALUES (1,1), (2,2), (3,3), (4,4);
|
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;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 100.00 Using index condition; Using where; Rowid-ordered scan
|
||||||
Warnings:
|
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
|
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;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 100.00 Using index condition; Using where; Rowid-ordered scan
|
||||||
Warnings:
|
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
|
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;
|
DROP TABLE t1;
|
||||||
|
@ -611,15 +611,15 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period;
|
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using temporary; Using filesort
|
1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using temporary; Using filesort
|
||||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181 Using join buffer (flat, BKA join)
|
1 SIMPLE t3 ref period period 4 test.t1.period 4181 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t3 ALL period NULL NULL NULL 41810 Using temporary; Using filesort
|
1 SIMPLE t3 ALL period NULL NULL NULL 41810 Using temporary; Using filesort
|
||||||
1 SIMPLE t1 ref period period 4 test.t3.period 4181 Using join buffer (flat, BKA join)
|
1 SIMPLE t1 ref period period 4 test.t3.period 4181 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using temporary; Using filesort
|
1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using temporary; Using filesort
|
||||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181 Using join buffer (flat, BKA join)
|
1 SIMPLE t3 ref period period 4 test.t1.period 4181 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
select period from t1;
|
select period from t1;
|
||||||
period
|
period
|
||||||
9410
|
9410
|
||||||
@ -1366,7 +1366,7 @@ count(*)
|
|||||||
explain select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
|
explain select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 1200
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 1200
|
||||||
1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using where; Not exists; Using join buffer (flat, BKA join)
|
1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using where; Not exists; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr is null;
|
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr is null;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 12
|
1 SIMPLE t4 ALL NULL NULL NULL NULL 12
|
||||||
@ -1386,15 +1386,15 @@ delete from t2 where fld1=999999;
|
|||||||
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0;
|
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
|
||||||
1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using join buffer (flat, BKA join)
|
1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0;
|
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 or t2.companynr < 0;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
|
||||||
1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using join buffer (flat, BKA join)
|
1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 and t4.companynr > 0;
|
explain select t2.companynr,companyname from t4 left join t2 using (companynr) where t2.companynr > 0 and t4.companynr > 0;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where
|
||||||
1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using join buffer (flat, BKA join)
|
1 SIMPLE t4 eq_ref PRIMARY PRIMARY 1 test.t2.companynr 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0;
|
explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
|
1 SIMPLE t4 ALL PRIMARY NULL NULL NULL 12 Using where
|
||||||
@ -3424,7 +3424,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);
|
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
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
|
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
|
||||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Rowid-ordered scan
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
CREATE TABLE t1 (i TINYINT UNSIGNED NOT NULL);
|
CREATE TABLE t1 (i TINYINT UNSIGNED NOT NULL);
|
||||||
INSERT t1 SET i = 0;
|
INSERT t1 SET i = 0;
|
||||||
@ -3460,8 +3460,8 @@ 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
|
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);
|
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
|
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; Using MRR
|
1 SIMPLE A range PRIMARY PRIMARY 12 NULL 4 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE B ref PRIMARY PRIMARY 8 const,test.A.e 10 Using join buffer (flat, BKA join)
|
1 SIMPLE B ref PRIMARY PRIMARY 8 const,test.A.e 10 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
CREATE TABLE t1 (a int PRIMARY KEY, b int, INDEX(b));
|
CREATE TABLE t1 (a int PRIMARY KEY, b int, INDEX(b));
|
||||||
INSERT INTO t1 VALUES (1, 3), (9,4), (7,5), (4,5), (6,2),
|
INSERT INTO t1 VALUES (1, 3), (9,4), (7,5), (4,5), (6,2),
|
||||||
@ -3474,13 +3474,13 @@ INSERT INTO t2 VALUES
|
|||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT a, c, d, f FROM t1,t2 WHERE a=c AND b BETWEEN 4 AND 6;
|
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
|
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 MRR
|
1 SIMPLE t1 range PRIMARY,b b 5 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE t2 ref c c 5 test.t1.a 2 Using join buffer (flat, BKA join)
|
1 SIMPLE t2 ref c c 5 test.t1.a 2 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT a, c, d, f FROM t1,t2 WHERE a=c AND b BETWEEN 4 AND 6 AND a > 0;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY,b b 5 NULL 3 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t2 ref c c 5 test.t1.a 2 Using join buffer (flat, BKA join)
|
1 SIMPLE t2 ref c c 5 test.t1.a 2 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
create table t1 (
|
create table t1 (
|
||||||
a int unsigned not null auto_increment primary key,
|
a int unsigned not null auto_increment primary key,
|
||||||
@ -3569,20 +3569,20 @@ EXPLAIN SELECT t2.*
|
|||||||
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
||||||
WHERE t2.fk < 'c' AND t2.pk=t1.fk;
|
WHERE t2.fk < 'c' AND t2.pk=t1.fk;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 3 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
EXPLAIN SELECT t2.*
|
EXPLAIN SELECT t2.*
|
||||||
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
||||||
WHERE t2.fk BETWEEN 'a' AND 'b' AND t2.pk=t1.fk;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
EXPLAIN SELECT t2.*
|
EXPLAIN SELECT t2.*
|
||||||
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
||||||
WHERE t2.fk IN ('a','b') AND t2.pk=t1.fk;
|
WHERE t2.fk IN ('a','b') AND t2.pk=t1.fk;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
CREATE TABLE t1 (a int, b varchar(20) NOT NULL, PRIMARY KEY(a));
|
CREATE TABLE t1 (a int, b varchar(20) NOT NULL, PRIMARY KEY(a));
|
||||||
CREATE TABLE t2 (a int, b varchar(20) NOT NULL,
|
CREATE TABLE t2 (a int, b varchar(20) NOT NULL,
|
||||||
@ -3615,32 +3615,32 @@ WHERE t1.id = 8 AND t2.i BETWEEN t1.b AND t1.e AND
|
|||||||
t3.a=t2.a AND t3.c IN ('bb','ee');
|
t3.a=t2.a AND t3.c IN ('bb','ee');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||||
1 SIMPLE t2 range si si 5 NULL 4 Using index condition; Using where; Using MRR
|
1 SIMPLE t2 range si si 5 NULL 4 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT t3.a FROM t1,t2,t3
|
SELECT t3.a FROM t1,t2,t3
|
||||||
WHERE t1.id = 8 AND t2.i BETWEEN t1.b AND t1.e AND
|
WHERE t1.id = 8 AND t2.i BETWEEN t1.b AND t1.e AND
|
||||||
t3.a=t2.a AND t3.c IN ('bb','ee') ;
|
t3.a=t2.a AND t3.c IN ('bb','ee') ;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||||
1 SIMPLE t2 range si,ai si 5 NULL 4 Using index condition; Using where; Using MRR
|
1 SIMPLE t2 range si,ai si 5 NULL 4 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT t3.a FROM t1,t2 FORCE INDEX (si),t3
|
SELECT t3.a FROM t1,t2 FORCE INDEX (si),t3
|
||||||
WHERE t1.id = 8 AND (t2.i=t1.b OR t2.i=t1.e) AND t3.a=t2.a AND
|
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');
|
t3.c IN ('bb','ee');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||||
1 SIMPLE t2 range si si 5 NULL 2 Using index condition; Using where; Using MRR
|
1 SIMPLE t2 range si si 5 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT t3.a FROM t1,t2,t3
|
SELECT t3.a FROM t1,t2,t3
|
||||||
WHERE t1.id = 8 AND (t2.i=t1.b OR t2.i=t1.e) AND t3.a=t2.a AND
|
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');
|
t3.c IN ('bb','ee');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||||
1 SIMPLE t2 range si,ai si 5 NULL 2 Using index condition; Using where; Using MRR
|
1 SIMPLE t2 range si,ai si 5 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
DROP TABLE t1,t2,t3;
|
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);
|
CREATE TABLE t1 ( f1 int primary key, f2 int, f3 int, f4 int, f5 int, f6 int, checked_out int);
|
||||||
CREATE TABLE t2 ( f11 int PRIMARY KEY );
|
CREATE TABLE t2 ( f11 int PRIMARY KEY );
|
||||||
@ -3759,7 +3759,7 @@ AND t1.ts BETWEEN t2.dt1 AND t2.dt2
|
|||||||
AND t1.ts BETWEEN "2006-01-01" AND "2006-12-31";
|
AND t1.ts BETWEEN "2006-01-01" AND "2006-12-31";
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
|
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
|
||||||
1 SIMPLE t1 range ts ts 4 NULL 1 Using index condition; Using where; Using MRR
|
1 SIMPLE t1 range ts ts 4 NULL 1 Using index condition; Using where; Rowid-ordered scan
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Incorrect datetime value: '2999-12-31 00:00:00' for column 'ts' at row 1
|
Warning 1292 Incorrect datetime value: '2999-12-31 00:00:00' for column 'ts' at row 1
|
||||||
SELECT * FROM t1 LEFT JOIN t2 ON (t1.a=t2.a) WHERE t1.a=30
|
SELECT * FROM t1 LEFT JOIN t2 ON (t1.a=t2.a) WHERE t1.a=30
|
||||||
@ -4383,12 +4383,12 @@ CREATE TABLE t1 (a INT KEY, b INT);
|
|||||||
INSERT INTO t1 VALUES (1,1), (2,2), (3,3), (4,4);
|
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;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 100.00 Using index condition; Using where; Rowid-ordered scan
|
||||||
Warnings:
|
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
|
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;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 100.00 Using index condition; Using where; Rowid-ordered scan
|
||||||
Warnings:
|
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
|
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;
|
DROP TABLE t1;
|
||||||
@ -4827,7 +4827,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 system NULL NULL NULL NULL 1
|
1 SIMPLE t1 system NULL NULL NULL NULL 1
|
||||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 12
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 12
|
||||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (flat, BNL join)
|
1 SIMPLE t3 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (flat, BNL join)
|
||||||
1 SIMPLE t4 eq_ref PRIMARY PRIMARY 4 const 1 Using join buffer (incremental, BKA join)
|
1 SIMPLE t4 eq_ref PRIMARY PRIMARY 4 const 1 Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t5 ALL NULL NULL NULL NULL 2 Using join buffer (incremental, BNL join)
|
1 SIMPLE t5 ALL NULL NULL NULL NULL 2 Using join buffer (incremental, BNL join)
|
||||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 2 Using join buffer (incremental, BNL join)
|
1 SIMPLE t6 ALL NULL NULL NULL NULL 2 Using join buffer (incremental, BNL join)
|
||||||
SELECT STRAIGHT_JOIN * FROM t2, (t1 LEFT JOIN (t3,t4) ON t1.f1 = t4.f1), t5, t6;
|
SELECT STRAIGHT_JOIN * FROM t2, (t1 LEFT JOIN (t3,t4) ON t1.f1 = t4.f1), t5, t6;
|
||||||
@ -4907,18 +4907,18 @@ SET SESSION optimizer_switch='index_condition_pushdown=off';
|
|||||||
EXPLAIN SELECT * from t1,t2,t3 WHERE t3.a3=t1.a1 AND t2.a2=t1.a1;
|
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
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL idx NULL NULL NULL 3
|
1 SIMPLE t1 ALL idx NULL NULL NULL 3
|
||||||
1 SIMPLE t2 ref idx idx 4 test.t1.a1 2 Using join buffer (flat, BKA join)
|
1 SIMPLE t2 ref idx idx 4 test.t1.a1 2 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t3 ref idx idx 4 test.t1.a1 5 Using join buffer (incremental, BKA join)
|
1 SIMPLE t3 ref idx idx 4 test.t1.a1 5 Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1,t2,t3 WHERE t2.a2=t1.a1 AND t3.a3=t1.a1;
|
EXPLAIN SELECT * FROM t1,t2,t3 WHERE t2.a2=t1.a1 AND t3.a3=t1.a1;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL idx NULL NULL NULL 3
|
1 SIMPLE t1 ALL idx NULL NULL NULL 3
|
||||||
1 SIMPLE t2 ref idx idx 4 test.t1.a1 2 Using join buffer (flat, BKA join)
|
1 SIMPLE t2 ref idx idx 4 test.t1.a1 2 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t3 ref idx idx 4 test.t1.a1 5 Using join buffer (incremental, BKA join)
|
1 SIMPLE t3 ref idx idx 4 test.t1.a1 5 Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
EXPLAIN SELECT * FROM t1,t2,t3 WHERE t2.a2=t1.a1 AND t3.a3=t2.a2;
|
EXPLAIN SELECT * FROM t1,t2,t3 WHERE t2.a2=t1.a1 AND t3.a3=t2.a2;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL idx NULL NULL NULL 3
|
1 SIMPLE t1 ALL idx NULL NULL NULL 3
|
||||||
1 SIMPLE t2 ref idx idx 4 test.t1.a1 2 Using join buffer (flat, BKA join)
|
1 SIMPLE t2 ref idx idx 4 test.t1.a1 2 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t3 ref idx idx 4 test.t1.a1 5 Using join buffer (incremental, BKA join)
|
1 SIMPLE t3 ref idx idx 4 test.t1.a1 5 Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT * from t1,t2,t3
|
SELECT * from t1,t2,t3
|
||||||
WHERE t3.a3=t1.a1 AND t2.a2=t1.a1 AND
|
WHERE t3.a3=t1.a1 AND t2.a2=t1.a1 AND
|
||||||
LENGTH(CONCAT(CONCAT(t1.b1,t2.b2),t3.b3)) <= 7;
|
LENGTH(CONCAT(CONCAT(t1.b1,t2.b2),t3.b3)) <= 7;
|
||||||
@ -5013,7 +5013,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t5 system PRIMARY NULL NULL NULL 1
|
1 SIMPLE t5 system PRIMARY NULL NULL NULL 1
|
||||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index
|
||||||
1 SIMPLE t2 ref f22 f22 5 const 1
|
1 SIMPLE t2 ref f22 f22 5 const 1
|
||||||
1 SIMPLE t6 ref f61 f61 5 const 1 Using where; Using join buffer (flat, BKA join)
|
1 SIMPLE t6 ref f61 f61 5 const 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 SIMPLE t4 ref f42 f42 5 const 1 Using index
|
1 SIMPLE t4 ref f42 f42 5 const 1 Using index
|
||||||
1 SIMPLE t7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
1 SIMPLE t7 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||||
SELECT t2.f23 FROM
|
SELECT t2.f23 FROM
|
||||||
|
@ -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);
|
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
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
|
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
|
||||||
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Rowid-ordered scan
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
CREATE TABLE t1 (i TINYINT UNSIGNED NOT NULL);
|
CREATE TABLE t1 (i TINYINT UNSIGNED NOT NULL);
|
||||||
INSERT t1 SET i = 0;
|
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
|
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);
|
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
|
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; Using MRR
|
1 SIMPLE A range PRIMARY PRIMARY 12 NULL 4 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE B ref PRIMARY PRIMARY 8 const,test.A.e 10
|
1 SIMPLE B ref PRIMARY PRIMARY 8 const,test.A.e 10
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
CREATE TABLE t1 (a int PRIMARY KEY, b int, INDEX(b));
|
CREATE TABLE t1 (a int PRIMARY KEY, b int, INDEX(b));
|
||||||
@ -3467,12 +3467,12 @@ INSERT INTO t2 VALUES
|
|||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT a, c, d, f FROM t1,t2 WHERE a=c AND b BETWEEN 4 AND 6;
|
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
|
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 MRR
|
1 SIMPLE t1 range PRIMARY,b b 5 NULL 3 Using index condition; Rowid-ordered scan
|
||||||
1 SIMPLE t2 ref c c 5 test.t1.a 2
|
1 SIMPLE t2 ref c c 5 test.t1.a 2
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT a, c, d, f FROM t1,t2 WHERE a=c AND b BETWEEN 4 AND 6 AND a > 0;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY,b b 5 NULL 3 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t2 ref c c 5 test.t1.a 2
|
1 SIMPLE t2 ref c c 5 test.t1.a 2
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
create table t1 (
|
create table t1 (
|
||||||
@ -3562,19 +3562,19 @@ EXPLAIN SELECT t2.*
|
|||||||
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
||||||
WHERE t2.fk < 'c' AND t2.pk=t1.fk;
|
WHERE t2.fk < 'c' AND t2.pk=t1.fk;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 3 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
|
||||||
EXPLAIN SELECT t2.*
|
EXPLAIN SELECT t2.*
|
||||||
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
||||||
WHERE t2.fk BETWEEN 'a' AND 'b' AND t2.pk=t1.fk;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
|
||||||
EXPLAIN SELECT t2.*
|
EXPLAIN SELECT t2.*
|
||||||
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
FROM t1 JOIN t2 ON t2.fk=t1.pk
|
||||||
WHERE t2.fk IN ('a','b') AND t2.pk=t1.fk;
|
WHERE t2.fk IN ('a','b') AND t2.pk=t1.fk;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 12 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
|
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 18 test.t1.fk 1 Using where
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
CREATE TABLE t1 (a int, b varchar(20) NOT NULL, PRIMARY KEY(a));
|
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');
|
t3.a=t2.a AND t3.c IN ('bb','ee');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||||
1 SIMPLE t2 range si si 5 NULL 4 Using index condition; Using where; Using MRR
|
1 SIMPLE t2 range si si 5 NULL 4 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT t3.a FROM t1,t2,t3
|
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') ;
|
t3.a=t2.a AND t3.c IN ('bb','ee') ;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||||
1 SIMPLE t2 range si,ai si 5 NULL 4 Using index condition; Using where; Using MRR
|
1 SIMPLE t2 range si,ai si 5 NULL 4 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT t3.a FROM t1,t2 FORCE INDEX (si),t3
|
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');
|
t3.c IN ('bb','ee');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||||
1 SIMPLE t2 range si si 5 NULL 2 Using index condition; Using where; Using MRR
|
1 SIMPLE t2 range si si 5 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT t3.a FROM t1,t2,t3
|
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');
|
t3.c IN ('bb','ee');
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||||
1 SIMPLE t2 range si,ai si 5 NULL 2 Using index condition; Using where; Using MRR
|
1 SIMPLE t2 range si,ai si 5 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
1 SIMPLE t3 eq_ref PRIMARY,ci PRIMARY 4 test.t2.a 1 Using where
|
||||||
DROP TABLE t1,t2,t3;
|
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);
|
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";
|
AND t1.ts BETWEEN "2006-01-01" AND "2006-12-31";
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
|
1 SIMPLE t2 const PRIMARY PRIMARY 4 const 1
|
||||||
1 SIMPLE t1 range ts ts 4 NULL 1 Using index condition; Using where; Using MRR
|
1 SIMPLE t1 range ts ts 4 NULL 1 Using index condition; Using where; Rowid-ordered scan
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1292 Incorrect datetime value: '2999-12-31 00:00:00' for column 'ts' at row 1
|
Warning 1292 Incorrect datetime value: '2999-12-31 00:00:00' for column 'ts' at row 1
|
||||||
SELECT * FROM t1 LEFT JOIN t2 ON (t1.a=t2.a) WHERE t1.a=30
|
SELECT * FROM t1 LEFT JOIN t2 ON (t1.a=t2.a) WHERE t1.a=30
|
||||||
@ -4376,12 +4376,12 @@ CREATE TABLE t1 (a INT KEY, b INT);
|
|||||||
INSERT INTO t1 VALUES (1,1), (2,2), (3,3), (4,4);
|
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;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 100.00 Using index condition; Using where; Rowid-ordered scan
|
||||||
Warnings:
|
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
|
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;
|
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
|
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; Using MRR
|
1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 3 100.00 Using index condition; Using where; Rowid-ordered scan
|
||||||
Warnings:
|
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
|
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;
|
DROP TABLE t1;
|
||||||
|
@ -1135,7 +1135,7 @@ and t4.pk=t1.c);
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 100
|
1 PRIMARY t3 ALL NULL NULL NULL NULL 100
|
||||||
1 PRIMARY subselect2 eq_ref unique_key unique_key 5 func 1
|
1 PRIMARY subselect2 eq_ref unique_key unique_key 5 func 1
|
||||||
2 SUBQUERY t1 range kp1 kp1 5 NULL 48 Using index condition; Using where; Using MRR
|
2 SUBQUERY t1 range kp1 kp1 5 NULL 48 Using index condition; Using where; Rowid-ordered scan
|
||||||
2 SUBQUERY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index
|
2 SUBQUERY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index
|
||||||
drop table t1, t3, t4;
|
drop table t1, t3, t4;
|
||||||
create table t1 (a int) as select * from t0 where a < 5;
|
create table t1 (a int) as select * from t0 where a < 5;
|
||||||
|
@ -167,7 +167,7 @@ from t3;
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 100.00
|
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 100.00
|
||||||
2 DEPENDENT SUBQUERY t1 ref_or_null a a 5 func 4 100.00 Using where; Full scan on NULL key
|
2 DEPENDENT SUBQUERY t1 ref_or_null a a 5 func 4 100.00 Using where; Full scan on NULL key
|
||||||
2 DEPENDENT SUBQUERY t2 ref a a 5 test.t1.b 1 100.00 Using where; Using join buffer (flat, BKA join)
|
2 DEPENDENT SUBQUERY t2 ref a a 5 test.t1.b 1 100.00 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1276 Field or reference 'test.t3.oref' of SELECT #2 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.t3.oref' of SELECT #2 was resolved in SELECT #1
|
||||||
Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t3`.`oref` AS `oref`,<expr_cache><`test`.`t3`.`a`,`test`.`t3`.`oref`>(<in_optimizer>(`test`.`t3`.`a`,<exists>(select 1 from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`a` = `test`.`t1`.`b`) and (`test`.`t2`.`b` = `test`.`t3`.`oref`) and trigcond(((<cache>(`test`.`t3`.`a`) = `test`.`t1`.`a`) or isnull(`test`.`t1`.`a`)))) having trigcond(<is_not_null_test>(`test`.`t1`.`a`))))) AS `Z` from `test`.`t3`
|
Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t3`.`oref` AS `oref`,<expr_cache><`test`.`t3`.`a`,`test`.`t3`.`oref`>(<in_optimizer>(`test`.`t3`.`a`,<exists>(select 1 from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`a` = `test`.`t1`.`b`) and (`test`.`t2`.`b` = `test`.`t3`.`oref`) and trigcond(((<cache>(`test`.`t3`.`a`) = `test`.`t1`.`a`) or isnull(`test`.`t1`.`a`)))) having trigcond(<is_not_null_test>(`test`.`t1`.`a`))))) AS `Z` from `test`.`t3`
|
||||||
@ -195,7 +195,7 @@ from t3;
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 100.00
|
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 100.00
|
||||||
2 DEPENDENT SUBQUERY t1 ref a a 4 func 2 100.00 Using where; Full scan on NULL key
|
2 DEPENDENT SUBQUERY t1 ref a a 4 func 2 100.00 Using where; Full scan on NULL key
|
||||||
2 DEPENDENT SUBQUERY t2 ref a a 4 test.t1.b 1 100.00 Using where; Using join buffer (flat, BKA join)
|
2 DEPENDENT SUBQUERY t2 ref a a 4 test.t1.b 1 100.00 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1276 Field or reference 'test.t3.oref' of SELECT #2 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.t3.oref' of SELECT #2 was resolved in SELECT #1
|
||||||
Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t3`.`oref` AS `oref`,<expr_cache><`test`.`t3`.`a`,`test`.`t3`.`oref`>(<in_optimizer>(`test`.`t3`.`a`,<exists>(select 1 from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`a` = `test`.`t1`.`b`) and (`test`.`t2`.`b` = `test`.`t3`.`oref`) and trigcond((<cache>(`test`.`t3`.`a`) = `test`.`t1`.`a`)))))) AS `Z` from `test`.`t3`
|
Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t3`.`oref` AS `oref`,<expr_cache><`test`.`t3`.`a`,`test`.`t3`.`oref`>(<in_optimizer>(`test`.`t3`.`a`,<exists>(select 1 from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`a` = `test`.`t1`.`b`) and (`test`.`t2`.`b` = `test`.`t3`.`oref`) and trigcond((<cache>(`test`.`t3`.`a`) = `test`.`t1`.`a`)))))) AS `Z` from `test`.`t3`
|
||||||
@ -739,7 +739,7 @@ WHERE t3.name='xxx' AND t2.id=t3.id);
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where
|
||||||
2 DEPENDENT SUBQUERY t2 eq_ref PRIMARY PRIMARY 4 func 1 Using where; Using index; Full scan on NULL key
|
2 DEPENDENT SUBQUERY t2 eq_ref PRIMARY PRIMARY 4 func 1 Using where; Using index; Full scan on NULL key
|
||||||
2 DEPENDENT SUBQUERY t3 eq_ref PRIMARY PRIMARY 4 func 1 Using index condition(BKA); Using where; Full scan on NULL key; Using join buffer (flat, BKA join)
|
2 DEPENDENT SUBQUERY t3 eq_ref PRIMARY PRIMARY 4 func 1 Using index condition(BKA); Using where; Full scan on NULL key; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT * FROM t1
|
SELECT * FROM t1
|
||||||
WHERE t1.id NOT IN (SELECT t2.id FROM t2,t3
|
WHERE t1.id NOT IN (SELECT t2.id FROM t2,t3
|
||||||
WHERE t3.name='xxx' AND t2.id=t3.id);
|
WHERE t3.name='xxx' AND t2.id=t3.id);
|
||||||
@ -1142,7 +1142,7 @@ and t4.pk=t1.c);
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 100
|
1 PRIMARY t3 ALL NULL NULL NULL NULL 100
|
||||||
1 PRIMARY subselect2 eq_ref unique_key unique_key 5 func 1
|
1 PRIMARY subselect2 eq_ref unique_key unique_key 5 func 1
|
||||||
2 SUBQUERY t1 range kp1 kp1 5 NULL 48 Using index condition; Using where; Using MRR
|
2 SUBQUERY t1 range kp1 kp1 5 NULL 48 Using index condition; Using where; Rowid-ordered scan
|
||||||
2 SUBQUERY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index
|
2 SUBQUERY t4 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using index
|
||||||
drop table t1, t3, t4;
|
drop table t1, t3, t4;
|
||||||
create table t1 (a int) as select * from t0 where a < 5;
|
create table t1 (a int) as select * from t0 where a < 5;
|
||||||
@ -1175,7 +1175,7 @@ insert into t3 select A.a + 10*B.a, 'filler' from t0 A, t0 B;
|
|||||||
explain select * from t3 where a in (select a from t2) and (a > 5 or a < 10);
|
explain select * from t3 where a in (select a from t2) and (a > 5 or a < 10);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 2
|
1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 2
|
||||||
1 PRIMARY t3 ref a a 5 test.t2.a 1 Using join buffer (flat, BKA join)
|
1 PRIMARY t3 ref a a 5 test.t2.a 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
2 SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where
|
2 SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where
|
||||||
select * from t3 where a in (select a from t2);
|
select * from t3 where a in (select a from t2);
|
||||||
a filler
|
a filler
|
||||||
@ -1224,7 +1224,7 @@ explain select * from t1, t3 where t3.a in (select a from t2) and (t3.a < 10 or
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 10 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 10 Using where
|
||||||
1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 10
|
1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 10
|
||||||
1 PRIMARY t3 ref a a 5 test.t2.a 10 Using join buffer (flat, BKA join)
|
1 PRIMARY t3 ref a a 5 test.t2.a 10 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
2 SUBQUERY t2 ALL NULL NULL NULL NULL 10 Using where
|
2 SUBQUERY t2 ALL NULL NULL NULL NULL 10 Using where
|
||||||
explain select straight_join * from t1 A, t1 B where A.a in (select a from t2);
|
explain select straight_join * from t1 A, t1 B where A.a in (select a from t2);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
@ -1254,14 +1254,14 @@ explain select * from t0, t3 where t3.a in (select a from t2) and (t3.a < 10 or
|
|||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t0 system NULL NULL NULL NULL 1
|
1 PRIMARY t0 system NULL NULL NULL NULL 1
|
||||||
1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 10
|
1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 10
|
||||||
1 PRIMARY t3 ref a a 5 test.t2.a 10 Using join buffer (flat, BKA join)
|
1 PRIMARY t3 ref a a 5 test.t2.a 10 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
2 SUBQUERY t2 ALL NULL NULL NULL NULL 10 Using where
|
2 SUBQUERY t2 ALL NULL NULL NULL NULL 10 Using where
|
||||||
create table t4 as select a as x, a as y from t1;
|
create table t4 as select a as x, a as y from t1;
|
||||||
explain select * from t0, t3 where (t3.a, t3.b) in (select x,y from t4) and (t3.a < 10 or t3.a >30);
|
explain select * from t0, t3 where (t3.a, t3.b) in (select x,y from t4) and (t3.a < 10 or t3.a >30);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t0 system NULL NULL NULL NULL 1
|
1 PRIMARY t0 system NULL NULL NULL NULL 1
|
||||||
1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 10
|
1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 10
|
||||||
1 PRIMARY t3 ref a a 5 test.t4.x 10 Using where; Using join buffer (flat, BKA join)
|
1 PRIMARY t3 ref a a 5 test.t4.x 10 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
2 SUBQUERY t4 ALL NULL NULL NULL NULL 10 Using where
|
2 SUBQUERY t4 ALL NULL NULL NULL NULL 10 Using where
|
||||||
drop table t0,t1,t2,t3,t4;
|
drop table t0,t1,t2,t3,t4;
|
||||||
create table t0 (a int);
|
create table t0 (a int);
|
||||||
@ -1412,7 +1412,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
|
|||||||
1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 2 1.00
|
1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 2 1.00
|
||||||
1 PRIMARY a index PRIMARY PRIMARY 4 NULL 2 100.00 Using where; Using index; Using join buffer (flat, BNL join)
|
1 PRIMARY a index PRIMARY PRIMARY 4 NULL 2 100.00 Using where; Using index; Using join buffer (flat, BNL join)
|
||||||
2 SUBQUERY cona ALL NULL NULL NULL NULL 2 100.00 Using where
|
2 SUBQUERY cona ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||||
2 SUBQUERY c eq_ref PRIMARY PRIMARY 4 test.cona.idContact 1 100.00 Using join buffer (flat, BKA join)
|
2 SUBQUERY c eq_ref PRIMARY PRIMARY 4 test.cona.idContact 1 100.00 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`a`.`idIndividual` AS `idIndividual` from `test`.`t1` `a` semi join (`test`.`t3` `cona` join `test`.`t2` `c`) where ((`test`.`c`.`idContact` = `test`.`cona`.`idContact`) and (`test`.`a`.`idIndividual` = `test`.`c`.`idObj`) and (`test`.`cona`.`postalStripped` = 'T2H3B2'))
|
Note 1003 select `test`.`a`.`idIndividual` AS `idIndividual` from `test`.`t1` `a` semi join (`test`.`t3` `cona` join `test`.`t2` `c`) where ((`test`.`c`.`idContact` = `test`.`cona`.`idContact`) and (`test`.`a`.`idIndividual` = `test`.`c`.`idObj`) and (`test`.`cona`.`postalStripped` = 'T2H3B2'))
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
|
@ -954,28 +954,28 @@ EXPLAIN
|
|||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, min(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, min(f4) FROM t2 WHERE f3 > 10);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
||||||
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, min(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, min(f4) FROM t2 WHERE f3 > 10);
|
||||||
f1 f2
|
f1 f2
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3+f4, min(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3+f4, min(f4) FROM t2 WHERE f3 > 10);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
||||||
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3+f4, min(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3+f4, min(f4) FROM t2 WHERE f3 > 10);
|
||||||
f1 f2
|
f1 f2
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, min(f4)+max(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, min(f4)+max(f4) FROM t2 WHERE f3 > 10);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
||||||
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, min(f4)+max(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, min(f4)+max(f4) FROM t2 WHERE f3 > 10);
|
||||||
f1 f2
|
f1 f2
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT (2, 0) NOT IN (SELECT f3, min(f4) FROM t2 WHERE f3 > 10) as not_in;
|
SELECT (2, 0) NOT IN (SELECT f3, min(f4) FROM t2 WHERE f3 > 10) as not_in;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT (2, 0) NOT IN (SELECT f3, min(f4) FROM t2 WHERE f3 > 10) as not_in;
|
SELECT (2, 0) NOT IN (SELECT f3, min(f4) FROM t2 WHERE f3 > 10) as not_in;
|
||||||
not_in
|
not_in
|
||||||
NULL
|
NULL
|
||||||
@ -983,21 +983,21 @@ EXPLAIN
|
|||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
||||||
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10);
|
||||||
f1 f2
|
f1 f2
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, f3 + count(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, f3 + count(f4) FROM t2 WHERE f3 > 10);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
||||||
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, f3 + count(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, f3 + count(f4) FROM t2 WHERE f3 > 10);
|
||||||
f1 f2
|
f1 f2
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10) as not_in;
|
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10) as not_in;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10) as not_in;
|
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10) as not_in;
|
||||||
not_in
|
not_in
|
||||||
NULL
|
NULL
|
||||||
@ -1005,7 +1005,7 @@ EXPLAIN
|
|||||||
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10 HAVING max(f4) > 7) as not_in;
|
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10 HAVING max(f4) > 7) as not_in;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10 HAVING max(f4) > 7) as not_in;
|
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10 HAVING max(f4) > 7) as not_in;
|
||||||
not_in
|
not_in
|
||||||
1
|
1
|
||||||
@ -1013,7 +1013,7 @@ EXPLAIN
|
|||||||
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10 HAVING max(f4) is null) as not_in;
|
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10 HAVING max(f4) is null) as not_in;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10 HAVING max(f4) is null) as not_in;
|
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10 HAVING max(f4) is null) as not_in;
|
||||||
not_in
|
not_in
|
||||||
NULL
|
NULL
|
||||||
@ -1021,7 +1021,7 @@ EXPLAIN
|
|||||||
SELECT (2, 0) NOT IN (SELECT max(f3+f3), count(f4) FROM t2 WHERE f3 > 10) as not_in;
|
SELECT (2, 0) NOT IN (SELECT max(f3+f3), count(f4) FROM t2 WHERE f3 > 10) as not_in;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT (2, 0) NOT IN (SELECT max(f3+f3), count(f4) FROM t2 WHERE f3 > 10) as not_in;
|
SELECT (2, 0) NOT IN (SELECT max(f3+f3), count(f4) FROM t2 WHERE f3 > 10) as not_in;
|
||||||
not_in
|
not_in
|
||||||
NULL
|
NULL
|
||||||
@ -1029,7 +1029,7 @@ EXPLAIN
|
|||||||
SELECT (2, 0) NOT IN (SELECT max(f3+f3), count(f4)+f3 FROM t2 WHERE f3 > 10) as not_in;
|
SELECT (2, 0) NOT IN (SELECT max(f3+f3), count(f4)+f3 FROM t2 WHERE f3 > 10) as not_in;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT (2, 0) NOT IN (SELECT max(f3+f3), count(f4)+f3 FROM t2 WHERE f3 > 10) as not_in;
|
SELECT (2, 0) NOT IN (SELECT max(f3+f3), count(f4)+f3 FROM t2 WHERE f3 > 10) as not_in;
|
||||||
not_in
|
not_in
|
||||||
NULL
|
NULL
|
||||||
@ -1045,28 +1045,28 @@ EXPLAIN
|
|||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, min(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, min(f4) FROM t2 WHERE f3 > 10);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, min(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, min(f4) FROM t2 WHERE f3 > 10);
|
||||||
f1 f2
|
f1 f2
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3+f4, min(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3+f4, min(f4) FROM t2 WHERE f3 > 10);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3+f4, min(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3+f4, min(f4) FROM t2 WHERE f3 > 10);
|
||||||
f1 f2
|
f1 f2
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, min(f4)+max(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, min(f4)+max(f4) FROM t2 WHERE f3 > 10);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, min(f4)+max(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, min(f4)+max(f4) FROM t2 WHERE f3 > 10);
|
||||||
f1 f2
|
f1 f2
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT (2, 0) NOT IN (SELECT f3, min(f4) FROM t2 WHERE f3 > 10) as not_in;
|
SELECT (2, 0) NOT IN (SELECT f3, min(f4) FROM t2 WHERE f3 > 10) as not_in;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT (2, 0) NOT IN (SELECT f3, min(f4) FROM t2 WHERE f3 > 10) as not_in;
|
SELECT (2, 0) NOT IN (SELECT f3, min(f4) FROM t2 WHERE f3 > 10) as not_in;
|
||||||
not_in
|
not_in
|
||||||
NULL
|
NULL
|
||||||
@ -1074,21 +1074,21 @@ EXPLAIN
|
|||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10);
|
||||||
f1 f2
|
f1 f2
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, f3 + count(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, f3 + count(f4) FROM t2 WHERE f3 > 10);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, f3 + count(f4) FROM t2 WHERE f3 > 10);
|
SELECT * FROM t1 WHERE (2, 0) NOT IN (SELECT f3, f3 + count(f4) FROM t2 WHERE f3 > 10);
|
||||||
f1 f2
|
f1 f2
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10) as not_in;
|
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10) as not_in;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10) as not_in;
|
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10) as not_in;
|
||||||
not_in
|
not_in
|
||||||
NULL
|
NULL
|
||||||
@ -1096,7 +1096,7 @@ EXPLAIN
|
|||||||
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10 HAVING max(f4) > 7) as not_in;
|
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10 HAVING max(f4) > 7) as not_in;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10 HAVING max(f4) > 7) as not_in;
|
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10 HAVING max(f4) > 7) as not_in;
|
||||||
not_in
|
not_in
|
||||||
1
|
1
|
||||||
@ -1104,7 +1104,7 @@ EXPLAIN
|
|||||||
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10 HAVING max(f4) is null) as not_in;
|
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10 HAVING max(f4) is null) as not_in;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10 HAVING max(f4) is null) as not_in;
|
SELECT (2, 0) NOT IN (SELECT f3, count(f4) FROM t2 WHERE f3 > 10 HAVING max(f4) is null) as not_in;
|
||||||
not_in
|
not_in
|
||||||
NULL
|
NULL
|
||||||
@ -1112,7 +1112,7 @@ EXPLAIN
|
|||||||
SELECT (2, 0) NOT IN (SELECT max(f3+f3), count(f4) FROM t2 WHERE f3 > 10) as not_in;
|
SELECT (2, 0) NOT IN (SELECT max(f3+f3), count(f4) FROM t2 WHERE f3 > 10) as not_in;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT (2, 0) NOT IN (SELECT max(f3+f3), count(f4) FROM t2 WHERE f3 > 10) as not_in;
|
SELECT (2, 0) NOT IN (SELECT max(f3+f3), count(f4) FROM t2 WHERE f3 > 10) as not_in;
|
||||||
not_in
|
not_in
|
||||||
NULL
|
NULL
|
||||||
@ -1120,7 +1120,7 @@ EXPLAIN
|
|||||||
SELECT (2, 0) NOT IN (SELECT max(f3+f3), count(f4)+f3 FROM t2 WHERE f3 > 10) as not_in;
|
SELECT (2, 0) NOT IN (SELECT max(f3+f3), count(f4)+f3 FROM t2 WHERE f3 > 10) as not_in;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Using MRR
|
2 DEPENDENT SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
SELECT (2, 0) NOT IN (SELECT max(f3+f3), count(f4)+f3 FROM t2 WHERE f3 > 10) as not_in;
|
SELECT (2, 0) NOT IN (SELECT max(f3+f3), count(f4)+f3 FROM t2 WHERE f3 > 10) as not_in;
|
||||||
not_in
|
not_in
|
||||||
NULL
|
NULL
|
||||||
|
@ -1213,7 +1213,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
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
|
||||||
1 PRIMARY subselect2 eq_ref unique_key unique_key 5 func 1
|
1 PRIMARY subselect2 eq_ref unique_key unique_key 5 func 1
|
||||||
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Using MRR
|
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Rowid-ordered scan
|
||||||
SELECT pk FROM t1 WHERE (a) IN (SELECT a FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (a) IN (SELECT a FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
2
|
2
|
||||||
@ -1363,7 +1363,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
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
|
||||||
1 PRIMARY subselect2 eq_ref unique_key unique_key 5 func 1
|
1 PRIMARY subselect2 eq_ref unique_key unique_key 5 func 1
|
||||||
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Using MRR
|
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Rowid-ordered scan
|
||||||
SELECT pk FROM t1 WHERE (a) IN (SELECT a FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (a) IN (SELECT a FROM t2 WHERE pk > 0);
|
||||||
pk
|
pk
|
||||||
2
|
2
|
||||||
|
@ -812,7 +812,7 @@ EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (a, b) IN (SELECT a, b FROM t2 WHERE pk
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY subselect2 eq_ref unique_key unique_key 13 func 1 1.00
|
1 PRIMARY subselect2 eq_ref unique_key unique_key 13 func 1 1.00
|
||||||
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using MRR
|
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Rowid-ordered scan
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (a, b) IN (SELECT a, b FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (a, b) IN (SELECT a, b FROM t2 WHERE pk > 0);
|
||||||
@ -821,7 +821,7 @@ pk
|
|||||||
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, c) IN (SELECT b, c FROM t2 WHERE pk > 0);
|
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, c) IN (SELECT b, c FROM t2 WHERE pk > 0);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`c` = `test`.`t1`.`c`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`c` = `test`.`t1`.`c`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, c) IN (SELECT b, c FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, c) IN (SELECT b, c FROM t2 WHERE pk > 0);
|
||||||
@ -831,7 +831,7 @@ pk
|
|||||||
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, d) IN (SELECT b, d FROM t2 WHERE pk > 0);
|
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, d) IN (SELECT b, d FROM t2 WHERE pk > 0);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`d` = `test`.`t1`.`d`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`d` = `test`.`t1`.`d`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, d) IN (SELECT b, d FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, d) IN (SELECT b, d FROM t2 WHERE pk > 0);
|
||||||
@ -840,7 +840,7 @@ pk
|
|||||||
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, e) IN (SELECT b, e FROM t2 WHERE pk > 0);
|
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, e) IN (SELECT b, e FROM t2 WHERE pk > 0);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`e` = `test`.`t1`.`e`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`e` = `test`.`t1`.`e`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, e) IN (SELECT b, e FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, e) IN (SELECT b, e FROM t2 WHERE pk > 0);
|
||||||
@ -850,7 +850,7 @@ pk
|
|||||||
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, f) IN (SELECT b, f FROM t2 WHERE pk > 0);
|
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, f) IN (SELECT b, f FROM t2 WHERE pk > 0);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`f` = `test`.`t1`.`f`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`f` = `test`.`t1`.`f`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, f) IN (SELECT b, f FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, f) IN (SELECT b, f FROM t2 WHERE pk > 0);
|
||||||
@ -860,7 +860,7 @@ pk
|
|||||||
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, g) IN (SELECT b, g FROM t2 WHERE pk > 0);
|
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, g) IN (SELECT b, g FROM t2 WHERE pk > 0);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`g` = `test`.`t1`.`g`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`g` = `test`.`t1`.`g`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, g) IN (SELECT b, g FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, g) IN (SELECT b, g FROM t2 WHERE pk > 0);
|
||||||
@ -870,7 +870,7 @@ pk
|
|||||||
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, h) IN (SELECT b, h FROM t2 WHERE pk > 0);
|
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, h) IN (SELECT b, h FROM t2 WHERE pk > 0);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`h` = `test`.`t1`.`h`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`h` = `test`.`t1`.`h`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, h) IN (SELECT b, h FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, h) IN (SELECT b, h FROM t2 WHERE pk > 0);
|
||||||
@ -880,7 +880,7 @@ pk
|
|||||||
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, i) IN (SELECT b, i FROM t2 WHERE pk > 0);
|
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, i) IN (SELECT b, i FROM t2 WHERE pk > 0);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`i` = `test`.`t1`.`i`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`i` = `test`.`t1`.`i`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, i) IN (SELECT b, i FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, i) IN (SELECT b, i FROM t2 WHERE pk > 0);
|
||||||
@ -890,7 +890,7 @@ pk
|
|||||||
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, j) IN (SELECT b, j FROM t2 WHERE pk > 0);
|
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, j) IN (SELECT b, j FROM t2 WHERE pk > 0);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`j` = `test`.`t1`.`j`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`j` = `test`.`t1`.`j`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, j) IN (SELECT b, j FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, j) IN (SELECT b, j FROM t2 WHERE pk > 0);
|
||||||
@ -900,7 +900,7 @@ pk
|
|||||||
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, k) IN (SELECT b, k FROM t2 WHERE pk > 0);
|
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, k) IN (SELECT b, k FROM t2 WHERE pk > 0);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`k` = `test`.`t1`.`k`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`k` = `test`.`t1`.`k`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, k) IN (SELECT b, k FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, k) IN (SELECT b, k FROM t2 WHERE pk > 0);
|
||||||
|
@ -311,7 +311,7 @@ t2.Code IN (SELECT Country FROM t3
|
|||||||
WHERE Language='English' AND Percentage > 10 AND
|
WHERE Language='English' AND Percentage > 10 AND
|
||||||
t2.Population > 100000);
|
t2.Population > 100000);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using index condition; Using MRR
|
1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t1.Country,const 1 Using index condition; Using where
|
1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t1.Country,const 1 Using index condition; Using where
|
||||||
1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
|
1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where
|
||||||
DROP TABLE t1,t2,t3;
|
DROP TABLE t1,t2,t3;
|
||||||
|
@ -40,7 +40,7 @@ a b
|
|||||||
explain select * from t2 where b in (select a from t1);
|
explain select * from t2 where b in (select a from t1);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 3
|
1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 3
|
||||||
1 PRIMARY t2 ref b b 5 test.t1.a 2 Using join buffer (flat, BKA join)
|
1 PRIMARY t2 ref b b 5 test.t1.a 2 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
2 SUBQUERY t1 ALL NULL NULL NULL NULL 3 Using where
|
2 SUBQUERY t1 ALL NULL NULL NULL NULL 3 Using where
|
||||||
select * from t2 where b in (select a from t1);
|
select * from t2 where b in (select a from t1);
|
||||||
a b
|
a b
|
||||||
@ -83,7 +83,7 @@ from t0 A, t0 B where B.a <5;
|
|||||||
explain select * from t3 where b in (select a from t0);
|
explain select * from t3 where b in (select a from t0);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 10
|
1 PRIMARY subselect2 ALL unique_key NULL NULL NULL 10
|
||||||
1 PRIMARY t3 ref b b 5 test.t0.a 1 Using join buffer (flat, BKA join)
|
1 PRIMARY t3 ref b b 5 test.t0.a 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
2 SUBQUERY t0 ALL NULL NULL NULL NULL 10 Using where
|
2 SUBQUERY t0 ALL NULL NULL NULL NULL 10 Using where
|
||||||
set @save_ecp= @@engine_condition_pushdown;
|
set @save_ecp= @@engine_condition_pushdown;
|
||||||
set engine_condition_pushdown=0;
|
set engine_condition_pushdown=0;
|
||||||
@ -318,9 +318,9 @@ t2.Code IN (SELECT Country FROM t3
|
|||||||
WHERE Language='English' AND Percentage > 10 AND
|
WHERE Language='English' AND Percentage > 10 AND
|
||||||
t2.Population > 100000);
|
t2.Population > 100000);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using index condition; Using MRR
|
1 PRIMARY t1 range Population,Country Population 4 NULL 1 Using index condition; Rowid-ordered scan
|
||||||
1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t1.Country,const 1 Using index condition; Using where; Using join buffer (flat, BKA join)
|
1 PRIMARY t3 eq_ref PRIMARY,Percentage PRIMARY 33 test.t1.Country,const 1 Using index condition; Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where; Using join buffer (incremental, BKA join)
|
1 PRIMARY t2 eq_ref PRIMARY,Population PRIMARY 3 test.t1.Country 1 Using where; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
DROP TABLE t1,t2,t3;
|
DROP TABLE t1,t2,t3;
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
Code char(3) NOT NULL DEFAULT '',
|
Code char(3) NOT NULL DEFAULT '',
|
||||||
@ -434,8 +434,8 @@ where t0.a in ( select t1.a from t1,t2 where t2.a=t0.a and
|
|||||||
t1.b=t2.b);
|
t1.b=t2.b);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t0 ALL NULL NULL NULL NULL 5 100.00 Using where; Start temporary
|
1 PRIMARY t0 ALL NULL NULL NULL NULL 5 100.00 Using where; Start temporary
|
||||||
1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Using join buffer (flat, BKA join)
|
1 PRIMARY t1 ref a a 5 test.t0.a 1 100.00 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 100.00 Using where; End temporary; Using join buffer (incremental, BKA join)
|
1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 100.00 Using where; End temporary; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1276 Field or reference 'test.t0.a' of SELECT #2 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.t0.a' of SELECT #2 was resolved in SELECT #1
|
||||||
Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t1`.`a` = `test`.`t0`.`a`) and (`test`.`t2`.`a` = `test`.`t0`.`a`))
|
Note 1003 select `test`.`t0`.`a` AS `a` from `test`.`t2` semi join (`test`.`t1`) join `test`.`t0` where ((`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t1`.`a` = `test`.`t0`.`a`) and (`test`.`t2`.`a` = `test`.`t0`.`a`))
|
||||||
|
@ -60,7 +60,7 @@ flattening a nested subquery
|
|||||||
explain select * from t1 where a in (select pk from t10 where t10.a in (select pk from t12));
|
explain select * from t1 where a in (select pk from t10 where t10.a in (select pk from t12));
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where
|
||||||
1 PRIMARY t10 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using join buffer (flat, BKA join)
|
1 PRIMARY t10 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 PRIMARY t12 eq_ref PRIMARY PRIMARY 4 test.t10.a 1 Using index
|
1 PRIMARY t12 eq_ref PRIMARY PRIMARY 4 test.t10.a 1 Using index
|
||||||
select * from t1 where a in (select pk from t10 where t10.a in (select pk from t12));
|
select * from t1 where a in (select pk from t10 where t10.a in (select pk from t12));
|
||||||
a b
|
a b
|
||||||
@ -71,7 +71,7 @@ flattening subquery w/ several tables
|
|||||||
explain extended select * from t1 where a in (select t10.pk from t10, t12 where t12.pk=t10.a);
|
explain extended select * from t1 where a in (select t10.pk from t10, t12 where t12.pk=t10.a);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||||
1 PRIMARY t10 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 100.00 Using where; Using join buffer (flat, BKA join)
|
1 PRIMARY t10 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 100.00 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 PRIMARY t12 eq_ref PRIMARY PRIMARY 4 test.t10.a 1 100.00 Using index
|
1 PRIMARY t12 eq_ref PRIMARY PRIMARY 4 test.t10.a 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t10` join `test`.`t12` join `test`.`t1` where ((`test`.`t10`.`pk` = `test`.`t1`.`a`) and (`test`.`t12`.`pk` = `test`.`t10`.`a`))
|
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t10` join `test`.`t12` join `test`.`t1` where ((`test`.`t10`.`pk` = `test`.`t1`.`a`) and (`test`.`t12`.`pk` = `test`.`t10`.`a`))
|
||||||
@ -516,7 +516,7 @@ EXPLAIN EXTENDED SELECT vkey FROM t0 WHERE pk IN
|
|||||||
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
|
(SELECT t1.pk FROM t0 t1 JOIN t0 t2 ON t2.vkey = t1.vnokey);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY t0 ALL PRIMARY NULL NULL NULL 5 100.00
|
1 PRIMARY t0 ALL PRIMARY NULL NULL NULL 5 100.00
|
||||||
1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00 Using where; Using join buffer (flat, BKA join)
|
1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 test.t0.pk 1 100.00 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 PRIMARY t2 ref vkey vkey 4 test.t1.vnokey 2 100.00 Using index; FirstMatch(t1)
|
1 PRIMARY t2 ref vkey vkey 4 test.t1.vnokey 2 100.00 Using index; FirstMatch(t1)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t0`.`vkey` AS `vkey` from `test`.`t0` `t1` semi join (`test`.`t0` `t2`) join `test`.`t0` where ((`test`.`t2`.`vkey` = `test`.`t1`.`vnokey`) and (`test`.`t1`.`pk` = `test`.`t0`.`pk`))
|
Note 1003 select `test`.`t0`.`vkey` AS `vkey` from `test`.`t0` `t1` semi join (`test`.`t0` `t2`) join `test`.`t0` where ((`test`.`t2`.`vkey` = `test`.`t1`.`vnokey`) and (`test`.`t1`.`pk` = `test`.`t0`.`pk`))
|
||||||
@ -820,7 +820,7 @@ EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (a, b) IN (SELECT a, b FROM t2 WHERE pk
|
|||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY subselect2 eq_ref unique_key unique_key 13 func 1 1.00
|
1 PRIMARY subselect2 eq_ref unique_key unique_key 13 func 1 1.00
|
||||||
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using MRR
|
2 SUBQUERY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Rowid-ordered scan
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (a, b) IN (SELECT a, b FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (a, b) IN (SELECT a, b FROM t2 WHERE pk > 0);
|
||||||
@ -829,7 +829,7 @@ pk
|
|||||||
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, c) IN (SELECT b, c FROM t2 WHERE pk > 0);
|
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, c) IN (SELECT b, c FROM t2 WHERE pk > 0);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer (flat, BNL join)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`c` = `test`.`t1`.`c`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`c` = `test`.`t1`.`c`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, c) IN (SELECT b, c FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, c) IN (SELECT b, c FROM t2 WHERE pk > 0);
|
||||||
@ -839,7 +839,7 @@ pk
|
|||||||
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, d) IN (SELECT b, d FROM t2 WHERE pk > 0);
|
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, d) IN (SELECT b, d FROM t2 WHERE pk > 0);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer (flat, BNL join)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`d` = `test`.`t1`.`d`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`d` = `test`.`t1`.`d`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, d) IN (SELECT b, d FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, d) IN (SELECT b, d FROM t2 WHERE pk > 0);
|
||||||
@ -848,7 +848,7 @@ pk
|
|||||||
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, e) IN (SELECT b, e FROM t2 WHERE pk > 0);
|
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, e) IN (SELECT b, e FROM t2 WHERE pk > 0);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer (flat, BNL join)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`e` = `test`.`t1`.`e`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`e` = `test`.`t1`.`e`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, e) IN (SELECT b, e FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, e) IN (SELECT b, e FROM t2 WHERE pk > 0);
|
||||||
@ -858,7 +858,7 @@ pk
|
|||||||
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, f) IN (SELECT b, f FROM t2 WHERE pk > 0);
|
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, f) IN (SELECT b, f FROM t2 WHERE pk > 0);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer (flat, BNL join)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`f` = `test`.`t1`.`f`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`f` = `test`.`t1`.`f`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, f) IN (SELECT b, f FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, f) IN (SELECT b, f FROM t2 WHERE pk > 0);
|
||||||
@ -868,7 +868,7 @@ pk
|
|||||||
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, g) IN (SELECT b, g FROM t2 WHERE pk > 0);
|
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, g) IN (SELECT b, g FROM t2 WHERE pk > 0);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer (flat, BNL join)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`g` = `test`.`t1`.`g`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`g` = `test`.`t1`.`g`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, g) IN (SELECT b, g FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, g) IN (SELECT b, g FROM t2 WHERE pk > 0);
|
||||||
@ -878,7 +878,7 @@ pk
|
|||||||
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, h) IN (SELECT b, h FROM t2 WHERE pk > 0);
|
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, h) IN (SELECT b, h FROM t2 WHERE pk > 0);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer (flat, BNL join)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`h` = `test`.`t1`.`h`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`h` = `test`.`t1`.`h`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, h) IN (SELECT b, h FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, h) IN (SELECT b, h FROM t2 WHERE pk > 0);
|
||||||
@ -888,7 +888,7 @@ pk
|
|||||||
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, i) IN (SELECT b, i FROM t2 WHERE pk > 0);
|
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, i) IN (SELECT b, i FROM t2 WHERE pk > 0);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer (flat, BNL join)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`i` = `test`.`t1`.`i`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`i` = `test`.`t1`.`i`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, i) IN (SELECT b, i FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, i) IN (SELECT b, i FROM t2 WHERE pk > 0);
|
||||||
@ -898,7 +898,7 @@ pk
|
|||||||
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, j) IN (SELECT b, j FROM t2 WHERE pk > 0);
|
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, j) IN (SELECT b, j FROM t2 WHERE pk > 0);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer (flat, BNL join)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`j` = `test`.`t1`.`j`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`j` = `test`.`t1`.`j`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, j) IN (SELECT b, j FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, j) IN (SELECT b, j FROM t2 WHERE pk > 0);
|
||||||
@ -908,7 +908,7 @@ pk
|
|||||||
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, k) IN (SELECT b, k FROM t2 WHERE pk > 0);
|
EXPLAIN EXTENDED SELECT pk FROM t1 WHERE (b, k) IN (SELECT b, k FROM t2 WHERE pk > 0);
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
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
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00
|
||||||
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Using MRR; FirstMatch(t1); Using join buffer (flat, BNL join)
|
1 PRIMARY t2 range PRIMARY PRIMARY 4 NULL 2 100.00 Using index condition; Using where; Rowid-ordered scan; FirstMatch(t1); Using join buffer (flat, BNL join)
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`k` = `test`.`t1`.`k`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
Note 1003 select `test`.`t1`.`pk` AS `pk` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`k` = `test`.`t1`.`k`) and (`test`.`t2`.`b` = `test`.`t1`.`b`) and (`test`.`t2`.`pk` > 0))
|
||||||
SELECT pk FROM t1 WHERE (b, k) IN (SELECT b, k FROM t2 WHERE pk > 0);
|
SELECT pk FROM t1 WHERE (b, k) IN (SELECT b, k FROM t2 WHERE pk > 0);
|
||||||
@ -1268,8 +1268,8 @@ SELECT * FROM t0 WHERE t0.a IN
|
|||||||
(SELECT t1.a FROM t1, t2 WHERE t2.a=t0.a AND t1.b=t2.b);
|
(SELECT t1.a FROM t1, t2 WHERE t2.a=t0.a AND t1.b=t2.b);
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 PRIMARY t0 ALL NULL NULL NULL NULL 5 Using where; Start temporary
|
1 PRIMARY t0 ALL NULL NULL NULL NULL 5 Using where; Start temporary
|
||||||
1 PRIMARY t1 ref a a 5 test.t0.a 1 Using join buffer (flat, BKA join)
|
1 PRIMARY t1 ref a a 5 test.t0.a 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||||
1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 Using where; End temporary; Using join buffer (incremental, BKA join)
|
1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t0.a 1 Using where; End temporary; Using join buffer (incremental, BKA join); Key-ordered Rowid-ordered scan
|
||||||
SELECT * FROM t0 WHERE t0.a IN
|
SELECT * FROM t0 WHERE t0.a IN
|
||||||
(SELECT t1.a FROM t1, t2 WHERE t2.a=t0.a AND t1.b=t2.b);
|
(SELECT t1.a FROM t1, t2 WHERE t2.a=t0.a AND t1.b=t2.b);
|
||||||
a
|
a
|
||||||
|
@ -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:
|
This should use facts and a1 tables:
|
||||||
explain extended select id from v1 where attr1 between 12 and 14;
|
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
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY a1 range PRIMARY,attr1 attr1 5 NULL 2 100.00 Using index condition; Using MRR
|
1 PRIMARY a1 range PRIMARY,attr1 attr1 5 NULL 2 100.00 Using index condition; Rowid-ordered scan
|
||||||
1 PRIMARY f eq_ref PRIMARY PRIMARY 4 test.a1.id 1 100.00 Using index
|
1 PRIMARY f eq_ref PRIMARY PRIMARY 4 test.a1.id 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1276 Field or reference 'test.a2.id' of SELECT #3 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.a2.id' of SELECT #3 was resolved in SELECT #1
|
||||||
@ -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:
|
This should use facts, a2 and its subquery:
|
||||||
explain extended select id from v1 where attr2 between 12 and 14;
|
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
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY a2 range PRIMARY,attr2 attr2 5 NULL 5 100.00 Using index condition; Using where; Using MRR
|
1 PRIMARY a2 range PRIMARY,attr2 attr2 5 NULL 5 100.00 Using index condition; Using where; Rowid-ordered scan
|
||||||
1 PRIMARY f eq_ref PRIMARY PRIMARY 4 test.a2.id 1 100.00 Using index
|
1 PRIMARY 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
|
3 DEPENDENT SUBQUERY t2 ref PRIMARY PRIMARY 4 test.a2.id 2 100.00 Using index
|
||||||
Warnings:
|
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:
|
This should use facts and a1 tables:
|
||||||
explain extended select id from v2 where attr1 between 12 and 14;
|
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
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY a1 range PRIMARY,attr1 attr1 5 NULL 2 100.00 Using index condition; Using MRR
|
1 PRIMARY a1 range PRIMARY,attr1 attr1 5 NULL 2 100.00 Using index condition; Rowid-ordered scan
|
||||||
1 PRIMARY f eq_ref PRIMARY PRIMARY 4 test.a1.id 1 100.00 Using index
|
1 PRIMARY f eq_ref PRIMARY PRIMARY 4 test.a1.id 1 100.00 Using index
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1276 Field or reference 'test.f.id' of SELECT #3 was resolved in SELECT #1
|
Note 1276 Field or reference 'test.f.id' of SELECT #3 was resolved in SELECT #1
|
||||||
@ -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:
|
This should use facts, a2 and its subquery:
|
||||||
explain extended select id from v2 where attr2 between 12 and 14;
|
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
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 PRIMARY a2 range PRIMARY,attr2 attr2 5 NULL 5 100.00 Using index condition; Using MRR
|
1 PRIMARY a2 range PRIMARY,attr2 attr2 5 NULL 5 100.00 Using index condition; Rowid-ordered scan
|
||||||
1 PRIMARY f eq_ref PRIMARY PRIMARY 4 test.a2.id 1 100.00 Using where; Using index
|
1 PRIMARY 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
|
3 DEPENDENT SUBQUERY t2 ref PRIMARY PRIMARY 4 test.f.id 2 100.00 Using index
|
||||||
Warnings:
|
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);
|
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
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 4
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 4
|
||||||
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 Using where; Using MRR
|
1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 Using where; Rowid-ordered scan
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
#
|
#
|
||||||
# LPBUG#523593: Running RQG optimizer_no_subquery crashes MariaDB
|
# LPBUG#523593: Running RQG optimizer_no_subquery crashes MariaDB
|
||||||
|
@ -1358,6 +1358,15 @@ void get_sweep_read_cost(TABLE *table, ha_rows nrows, bool interrupted,
|
|||||||
*/
|
*/
|
||||||
#define HA_MRR_MATERIALIZED_KEYS 256
|
#define HA_MRR_MATERIALIZED_KEYS 256
|
||||||
|
|
||||||
|
#define HA_MRR_IMPLEMENTATION_FLAG1 512
|
||||||
|
#define HA_MRR_IMPLEMENTATION_FLAG2 1024
|
||||||
|
#define HA_MRR_IMPLEMENTATION_FLAG3 2048
|
||||||
|
#define HA_MRR_IMPLEMENTATION_FLAG4 4096
|
||||||
|
#define HA_MRR_IMPLEMENTATION_FLAG5 8192
|
||||||
|
#define HA_MRR_IMPLEMENTATION_FLAG6 16384
|
||||||
|
|
||||||
|
#define HA_MRR_IMPLEMENTATION_FLAGS \
|
||||||
|
(512 | 1024 | 2048 | 4096 | 8192 | 16384)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
This is a buffer area that the handler can use to store rows.
|
This is a buffer area that the handler can use to store rows.
|
||||||
@ -1863,14 +1872,40 @@ public:
|
|||||||
virtual ha_rows multi_range_read_info_const(uint keyno, RANGE_SEQ_IF *seq,
|
virtual ha_rows multi_range_read_info_const(uint keyno, RANGE_SEQ_IF *seq,
|
||||||
void *seq_init_param,
|
void *seq_init_param,
|
||||||
uint n_ranges, uint *bufsz,
|
uint n_ranges, uint *bufsz,
|
||||||
uint *flags, COST_VECT *cost);
|
uint *mrr_mode, COST_VECT *cost);
|
||||||
virtual ha_rows multi_range_read_info(uint keyno, uint n_ranges, uint keys,
|
virtual ha_rows multi_range_read_info(uint keyno, uint n_ranges, uint keys,
|
||||||
uint key_parts, uint *bufsz,
|
uint key_parts, uint *bufsz,
|
||||||
uint *flags, COST_VECT *cost);
|
uint *mrr_mode, COST_VECT *cost);
|
||||||
virtual int multi_range_read_init(RANGE_SEQ_IF *seq, void *seq_init_param,
|
virtual int multi_range_read_init(RANGE_SEQ_IF *seq, void *seq_init_param,
|
||||||
uint n_ranges, uint mode,
|
uint n_ranges, uint mrr_mode,
|
||||||
HANDLER_BUFFER *buf);
|
HANDLER_BUFFER *buf);
|
||||||
virtual int multi_range_read_next(range_id_t *range_info);
|
virtual int multi_range_read_next(range_id_t *range_info);
|
||||||
|
/*
|
||||||
|
Return string representation of the MRR plan.
|
||||||
|
|
||||||
|
This is intended to be used for EXPLAIN, via the following scenario:
|
||||||
|
1. SQL layer calls handler->multi_range_read_info().
|
||||||
|
1.1. Storage engine figures out whether it will use some non-default
|
||||||
|
MRR strategy, sets appropritate bits in *mrr_mode, and returns
|
||||||
|
control to SQL layer
|
||||||
|
2. SQL layer remembers the returned mrr_mode
|
||||||
|
3. SQL layer compares various options and choses the final query plan. As
|
||||||
|
a part of that, it makes a choice of whether to use the MRR strategy
|
||||||
|
picked in 1.1
|
||||||
|
4. EXPLAIN code converts the query plan to its text representation. If MRR
|
||||||
|
strategy is part of the plan, it calls
|
||||||
|
multi_range_read_explain_info(mrr_mode) to get a text representation of
|
||||||
|
the picked MRR strategy.
|
||||||
|
|
||||||
|
@param mrr_mode Mode which was returned by multi_range_read_info[_const]
|
||||||
|
@param str INOUT string to be printed for EXPLAIN
|
||||||
|
@param str_end End of the string buffer. The function is free to put the
|
||||||
|
string into [str..str_end] memory range.
|
||||||
|
*/
|
||||||
|
virtual int multi_range_read_explain_info(uint mrr_mode, char *str,
|
||||||
|
size_t size)
|
||||||
|
{ return 0; }
|
||||||
|
|
||||||
virtual int read_range_first(const key_range *start_key,
|
virtual int read_range_first(const key_range *start_key,
|
||||||
const key_range *end_key,
|
const key_range *end_key,
|
||||||
bool eq_range, bool sorted);
|
bool eq_range, bool sorted);
|
||||||
|
@ -1372,7 +1372,7 @@ ha_rows DsMrr_impl::dsmrr_info(uint keyno, uint n_ranges, uint rows,
|
|||||||
DBUG_ASSERT(!res);
|
DBUG_ASSERT(!res);
|
||||||
|
|
||||||
if ((*flags & HA_MRR_USE_DEFAULT_IMPL) ||
|
if ((*flags & HA_MRR_USE_DEFAULT_IMPL) ||
|
||||||
choose_mrr_impl(keyno, rows, &def_flags, &def_bufsz, cost))
|
choose_mrr_impl(keyno, rows, flags, bufsz, cost))
|
||||||
{
|
{
|
||||||
/* Default implementation is choosen */
|
/* Default implementation is choosen */
|
||||||
DBUG_PRINT("info", ("Default MRR implementation choosen"));
|
DBUG_PRINT("info", ("Default MRR implementation choosen"));
|
||||||
@ -1517,11 +1517,13 @@ bool DsMrr_impl::choose_mrr_impl(uint keyno, ha_rows rows, uint *flags,
|
|||||||
bool doing_cpk_scan= check_cpk_scan(thd, keyno, *flags);
|
bool doing_cpk_scan= check_cpk_scan(thd, keyno, *flags);
|
||||||
bool using_cpk= test(keyno == table->s->primary_key &&
|
bool using_cpk= test(keyno == table->s->primary_key &&
|
||||||
primary_file->primary_key_is_clustered());
|
primary_file->primary_key_is_clustered());
|
||||||
|
*flags &= ~HA_MRR_IMPLEMENTATION_FLAGS;
|
||||||
if (thd->variables.optimizer_use_mrr == 2 || *flags & HA_MRR_INDEX_ONLY ||
|
if (thd->variables.optimizer_use_mrr == 2 || *flags & HA_MRR_INDEX_ONLY ||
|
||||||
(using_cpk && !doing_cpk_scan) || key_uses_partial_cols(table, keyno))
|
(using_cpk && !doing_cpk_scan) || key_uses_partial_cols(table, keyno))
|
||||||
{
|
{
|
||||||
/* Use the default implementation */
|
/* Use the default implementation */
|
||||||
*flags |= HA_MRR_USE_DEFAULT_IMPL;
|
*flags |= HA_MRR_USE_DEFAULT_IMPL;
|
||||||
|
*flags &= ~HA_MRR_IMPLEMENTATION_FLAGS;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1549,9 +1551,24 @@ bool DsMrr_impl::choose_mrr_impl(uint keyno, ha_rows rows, uint *flags,
|
|||||||
*cost= dsmrr_cost;
|
*cost= dsmrr_cost;
|
||||||
res= FALSE;
|
res= FALSE;
|
||||||
|
|
||||||
|
|
||||||
|
if ((using_cpk && doing_cpk_scan) ||
|
||||||
|
(optimizer_flag(thd, OPTIMIZER_SWITCH_MRR_SORT_KEYS) &&
|
||||||
|
*flags & HA_MRR_SINGLE_POINT))
|
||||||
|
{
|
||||||
|
*flags |= DSMRR_IMPL_SORT_KEYS;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(using_cpk && doing_cpk_scan) &&
|
||||||
|
!(*flags & HA_MRR_INDEX_ONLY))
|
||||||
|
{
|
||||||
|
*flags |= DSMRR_IMPL_SORT_ROWIDS;
|
||||||
|
}
|
||||||
|
/*
|
||||||
if ((*flags & HA_MRR_SINGLE_POINT) &&
|
if ((*flags & HA_MRR_SINGLE_POINT) &&
|
||||||
optimizer_flag(thd, OPTIMIZER_SWITCH_MRR_SORT_KEYS))
|
optimizer_flag(thd, OPTIMIZER_SWITCH_MRR_SORT_KEYS))
|
||||||
*flags |= HA_MRR_MATERIALIZED_KEYS;
|
*flags |= HA_MRR_MATERIALIZED_KEYS;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1561,6 +1578,38 @@ bool DsMrr_impl::choose_mrr_impl(uint keyno, ha_rows rows, uint *flags,
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Take the flags we've returned previously and print one of
|
||||||
|
- Key-ordered scan
|
||||||
|
- Rowid-ordered scan
|
||||||
|
- Key-ordered Rowid-ordered scan
|
||||||
|
*/
|
||||||
|
|
||||||
|
int DsMrr_impl::dsmrr_explain_info(uint mrr_mode, char *str, size_t size)
|
||||||
|
{
|
||||||
|
const char *key_ordered= "Key-ordered scan";
|
||||||
|
const char *rowid_ordered= "Rowid-ordered scan";
|
||||||
|
const char *both_ordered= "Key-ordered Rowid-ordered scan";
|
||||||
|
const char *used_str="";
|
||||||
|
const uint BOTH_FLAGS= (DSMRR_IMPL_SORT_KEYS | DSMRR_IMPL_SORT_ROWIDS);
|
||||||
|
|
||||||
|
if (!(mrr_mode & HA_MRR_USE_DEFAULT_IMPL))
|
||||||
|
{
|
||||||
|
if ((mrr_mode & BOTH_FLAGS) == BOTH_FLAGS)
|
||||||
|
used_str= both_ordered;
|
||||||
|
else if (mrr_mode & DSMRR_IMPL_SORT_KEYS)
|
||||||
|
used_str= key_ordered;
|
||||||
|
else if (mrr_mode & DSMRR_IMPL_SORT_ROWIDS)
|
||||||
|
used_str= rowid_ordered;
|
||||||
|
|
||||||
|
uint used_str_len= strlen(used_str);
|
||||||
|
uint copy_len= min(used_str_len, size);
|
||||||
|
memcpy(str, used_str, size);
|
||||||
|
return copy_len;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void get_sort_and_sweep_cost(TABLE *table, ha_rows nrows, COST_VECT *cost);
|
static void get_sort_and_sweep_cost(TABLE *table, ha_rows nrows, COST_VECT *cost);
|
||||||
|
|
||||||
|
@ -395,6 +395,9 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#define DSMRR_IMPL_SORT_KEYS HA_MRR_IMPLEMENTATION_FLAG1
|
||||||
|
#define DSMRR_IMPL_SORT_ROWIDS HA_MRR_IMPLEMENTATION_FLAG2
|
||||||
|
|
||||||
/*
|
/*
|
||||||
DS-MRR implementation for one table. Create/use one object of this class for
|
DS-MRR implementation for one table. Create/use one object of this class for
|
||||||
each ha_{myisam/innobase/etc} object. That object will be further referred to
|
each ha_{myisam/innobase/etc} object. That object will be further referred to
|
||||||
@ -548,6 +551,8 @@ public:
|
|||||||
ha_rows dsmrr_info_const(uint keyno, RANGE_SEQ_IF *seq,
|
ha_rows dsmrr_info_const(uint keyno, RANGE_SEQ_IF *seq,
|
||||||
void *seq_init_param, uint n_ranges, uint *bufsz,
|
void *seq_init_param, uint n_ranges, uint *bufsz,
|
||||||
uint *flags, COST_VECT *cost);
|
uint *flags, COST_VECT *cost);
|
||||||
|
|
||||||
|
int dsmrr_explain_info(uint mrr_mode, char *str, size_t size);
|
||||||
private:
|
private:
|
||||||
/* Buffer to store (key, range_id) pairs */
|
/* Buffer to store (key, range_id) pairs */
|
||||||
Lifo_buffer *key_buffer;
|
Lifo_buffer *key_buffer;
|
||||||
|
@ -2491,8 +2491,36 @@ void JOIN_CACHE::print_explain_comment(String *str)
|
|||||||
str->append(join_alg);
|
str->append(join_alg);
|
||||||
str->append(STRING_WITH_LEN(" join"));
|
str->append(STRING_WITH_LEN(" join"));
|
||||||
str->append(STRING_WITH_LEN(")"));
|
str->append(STRING_WITH_LEN(")"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void add_mrr_explain_info(String *str, uint mrr_mode, handler *file)
|
||||||
|
{
|
||||||
|
char mrr_str_buf[128]={0};
|
||||||
|
int len;
|
||||||
|
len= file->multi_range_read_explain_info(mrr_mode, mrr_str_buf,
|
||||||
|
sizeof(mrr_str_buf));
|
||||||
|
if (len > 0)
|
||||||
|
{
|
||||||
|
str->append(STRING_WITH_LEN("; "));
|
||||||
|
str->append(mrr_str_buf, len);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void JOIN_CACHE_BKA::print_explain_comment(String *str)
|
||||||
|
{
|
||||||
|
JOIN_CACHE::print_explain_comment(str);
|
||||||
|
add_mrr_explain_info(str, mrr_mode, join_tab->table->file);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void JOIN_CACHE_BKAH::print_explain_comment(String *str)
|
||||||
|
{
|
||||||
|
JOIN_CACHE::print_explain_comment(str);
|
||||||
|
add_mrr_explain_info(str, mrr_mode, join_tab->table->file);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Initialize a hashed join cache
|
Initialize a hashed join cache
|
||||||
|
@ -637,7 +637,7 @@ public:
|
|||||||
enum_nested_loop_state join_records(bool skip_last);
|
enum_nested_loop_state join_records(bool skip_last);
|
||||||
|
|
||||||
/* Add a comment on the join algorithm employed by the join cache */
|
/* Add a comment on the join algorithm employed by the join cache */
|
||||||
void print_explain_comment(String *str);
|
virtual void print_explain_comment(String *str);
|
||||||
|
|
||||||
virtual ~JOIN_CACHE() {}
|
virtual ~JOIN_CACHE() {}
|
||||||
void reset_join(JOIN *j) { join= j; }
|
void reset_join(JOIN *j) { join= j; }
|
||||||
@ -1315,6 +1315,7 @@ public:
|
|||||||
/* Check index condition of the joined table for a record from BKA cache */
|
/* Check index condition of the joined table for a record from BKA cache */
|
||||||
bool skip_index_tuple(range_id_t range_info);
|
bool skip_index_tuple(range_id_t range_info);
|
||||||
|
|
||||||
|
void print_explain_comment(String *str);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -1404,4 +1405,6 @@ public:
|
|||||||
|
|
||||||
/* Check index condition of the joined table for a record from BKAH cache */
|
/* Check index condition of the joined table for a record from BKAH cache */
|
||||||
bool skip_index_tuple(range_id_t range_info);
|
bool skip_index_tuple(range_id_t range_info);
|
||||||
|
|
||||||
|
void print_explain_comment(String *str);
|
||||||
};
|
};
|
||||||
|
@ -19638,12 +19638,30 @@ static void select_describe(JOIN *join, bool need_tmp_table, bool need_order,
|
|||||||
if (table->reginfo.not_exists_optimize)
|
if (table->reginfo.not_exists_optimize)
|
||||||
extra.append(STRING_WITH_LEN("; Not exists"));
|
extra.append(STRING_WITH_LEN("; Not exists"));
|
||||||
|
|
||||||
|
/*
|
||||||
if (quick_type == QUICK_SELECT_I::QS_TYPE_RANGE &&
|
if (quick_type == QUICK_SELECT_I::QS_TYPE_RANGE &&
|
||||||
!(((QUICK_RANGE_SELECT*)(tab->select->quick))->mrr_flags &
|
!(((QUICK_RANGE_SELECT*)(tab->select->quick))->mrr_flags &
|
||||||
HA_MRR_USE_DEFAULT_IMPL))
|
HA_MRR_USE_DEFAULT_IMPL))
|
||||||
{
|
{
|
||||||
extra.append(STRING_WITH_LEN("; Using MRR"));
|
extra.append(STRING_WITH_LEN("; Using MRR"));
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
if (quick_type == QUICK_SELECT_I::QS_TYPE_RANGE)
|
||||||
|
{
|
||||||
|
char mrr_str_buf[128];
|
||||||
|
mrr_str_buf[0]=0;
|
||||||
|
int len;
|
||||||
|
uint mrr_flags=
|
||||||
|
((QUICK_RANGE_SELECT*)(tab->select->quick))->mrr_flags;
|
||||||
|
len= table->file->multi_range_read_explain_info(mrr_flags,
|
||||||
|
mrr_str_buf,
|
||||||
|
sizeof(mrr_str_buf));
|
||||||
|
if (len > 0)
|
||||||
|
{
|
||||||
|
extra.append(STRING_WITH_LEN("; "));
|
||||||
|
extra.append(mrr_str_buf, len);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (need_tmp_table)
|
if (need_tmp_table)
|
||||||
{
|
{
|
||||||
|
@ -3665,6 +3665,11 @@ ha_rows ha_maria::multi_range_read_info(uint keyno, uint n_ranges, uint keys,
|
|||||||
return ds_mrr.dsmrr_info(keyno, n_ranges, keys, key_parts, bufsz, flags, cost);
|
return ds_mrr.dsmrr_info(keyno, n_ranges, keys, key_parts, bufsz, flags, cost);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ha_maria::multi_range_read_explain_info(uint mrr_mode, char *str,
|
||||||
|
size_t size)
|
||||||
|
{
|
||||||
|
return ds_mrr.dsmrr_explain_info(mrr_mode, str, size);
|
||||||
|
}
|
||||||
/* MyISAM MRR implementation ends */
|
/* MyISAM MRR implementation ends */
|
||||||
|
|
||||||
|
|
||||||
|
@ -186,6 +186,7 @@ public:
|
|||||||
ha_rows multi_range_read_info(uint keyno, uint n_ranges, uint keys,
|
ha_rows multi_range_read_info(uint keyno, uint n_ranges, uint keys,
|
||||||
uint key_parts, uint *bufsz,
|
uint key_parts, uint *bufsz,
|
||||||
uint *flags, COST_VECT *cost);
|
uint *flags, COST_VECT *cost);
|
||||||
|
int multi_range_read_explain_info(uint mrr_mode, char *str, size_t size);
|
||||||
|
|
||||||
/* Index condition pushdown implementation */
|
/* Index condition pushdown implementation */
|
||||||
Item *idx_cond_push(uint keyno, Item* idx_cond);
|
Item *idx_cond_push(uint keyno, Item* idx_cond);
|
||||||
|
@ -2281,6 +2281,13 @@ ha_rows ha_myisam::multi_range_read_info(uint keyno, uint n_ranges, uint keys,
|
|||||||
return ds_mrr.dsmrr_info(keyno, n_ranges, keys, key_parts, bufsz, flags, cost);
|
return ds_mrr.dsmrr_info(keyno, n_ranges, keys, key_parts, bufsz, flags, cost);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int ha_myisam::multi_range_read_explain_info(uint mrr_mode, char *str,
|
||||||
|
size_t size)
|
||||||
|
{
|
||||||
|
return ds_mrr.dsmrr_explain_info(mrr_mode, str, size);
|
||||||
|
}
|
||||||
|
|
||||||
/* MyISAM MRR implementation ends */
|
/* MyISAM MRR implementation ends */
|
||||||
|
|
||||||
|
|
||||||
|
@ -170,7 +170,8 @@ public:
|
|||||||
ha_rows multi_range_read_info(uint keyno, uint n_ranges, uint keys,
|
ha_rows multi_range_read_info(uint keyno, uint n_ranges, uint keys,
|
||||||
uint key_parts, uint *bufsz,
|
uint key_parts, uint *bufsz,
|
||||||
uint *flags, COST_VECT *cost);
|
uint *flags, COST_VECT *cost);
|
||||||
|
int multi_range_read_explain_info(uint mrr_mode, char *str, size_t size);
|
||||||
|
|
||||||
/* Index condition pushdown implementation */
|
/* Index condition pushdown implementation */
|
||||||
Item *idx_cond_push(uint keyno, Item* idx_cond);
|
Item *idx_cond_push(uint keyno, Item* idx_cond);
|
||||||
private:
|
private:
|
||||||
|
@ -12139,6 +12139,10 @@ ha_rows ha_innobase::multi_range_read_info(uint keyno, uint n_ranges, uint keys,
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ha_innobase::multi_range_read_explain_info(uint mrr_mode, char *str, size_t size)
|
||||||
|
{
|
||||||
|
return ds_mrr.dsmrr_explain_info(mrr_mode, str, size);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
A helper function used only in index_cond_func_innodb
|
A helper function used only in index_cond_func_innodb
|
||||||
|
@ -237,6 +237,7 @@ public:
|
|||||||
ha_rows multi_range_read_info(uint keyno, uint n_ranges, uint keys,
|
ha_rows multi_range_read_info(uint keyno, uint n_ranges, uint keys,
|
||||||
uint key_parts, uint *bufsz,
|
uint key_parts, uint *bufsz,
|
||||||
uint *flags, COST_VECT *cost);
|
uint *flags, COST_VECT *cost);
|
||||||
|
int multi_range_read_explain_info(uint mrr_mode, char *str, size_t size);
|
||||||
DsMrr_impl ds_mrr;
|
DsMrr_impl ds_mrr;
|
||||||
|
|
||||||
Item *idx_cond_push(uint keyno, Item* idx_cond);
|
Item *idx_cond_push(uint keyno, Item* idx_cond);
|
||||||
|
Reference in New Issue
Block a user