2006-05-22 13:57:32 +02:00
|
|
|
CREATE TABLE t1 (id int(11) NOT NULL PRIMARY KEY, name varchar(20),
|
|
|
|
INDEX (name)) ENGINE=InnoDB;
|
|
|
|
CREATE TABLE t2 (id int(11) NOT NULL PRIMARY KEY, fkey int(11),
|
|
|
|
FOREIGN KEY (fkey) REFERENCES t2(id)) ENGINE=InnoDB;
|
|
|
|
INSERT INTO t1 VALUES (1,'A1'),(2,'A2'),(3,'B');
|
|
|
|
INSERT INTO t2 VALUES (1,1),(2,2),(3,2),(4,3),(5,3);
|
|
|
|
EXPLAIN
|
|
|
|
SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
|
|
|
|
WHERE t1.name LIKE 'A%';
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2008-05-07 07:58:21 +02:00
|
|
|
1 SIMPLE t1 index PRIMARY,name name 23 NULL 3 Using where; Using index
|
2006-05-22 13:57:32 +02:00
|
|
|
1 SIMPLE t2 ref fkey fkey 5 test.t1.id 1 Using where; Using index
|
|
|
|
EXPLAIN
|
|
|
|
SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
|
|
|
|
WHERE t1.name LIKE 'A%' OR FALSE;
|
|
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
2008-05-07 07:58:21 +02:00
|
|
|
1 SIMPLE t2 index NULL fkey 5 NULL 5 Using index
|
2006-06-11 09:04:23 +02:00
|
|
|
1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.fkey 1 Using where
|
2006-05-22 13:57:32 +02:00
|
|
|
DROP TABLE t1,t2;
|