|
| 1 | +CREATE TABLE t1 ( |
| 2 | +id int NOT NULL auto_increment PRIMARY KEY, |
| 3 | +b int NOT NULL, |
| 4 | +c datetime NOT NULL, |
| 5 | +INDEX idx_b(b), |
| 6 | +INDEX idx_c(c) |
| 7 | +) ENGINE=InnoDB; |
| 8 | +CREATE TABLE t2 ( |
| 9 | +b int NOT NULL auto_increment PRIMARY KEY, |
| 10 | +c datetime NOT NULL |
| 11 | +) ENGINE= MyISAM; |
| 12 | +INSERT INTO t2(c) VALUES ('2007-01-01'); |
| 13 | +INSERT INTO t2(c) SELECT c FROM t2; |
| 14 | +INSERT INTO t2(c) SELECT c FROM t2; |
| 15 | +INSERT INTO t2(c) SELECT c FROM t2; |
| 16 | +INSERT INTO t2(c) SELECT c FROM t2; |
| 17 | +INSERT INTO t2(c) SELECT c FROM t2; |
| 18 | +INSERT INTO t2(c) SELECT c FROM t2; |
| 19 | +INSERT INTO t2(c) SELECT c FROM t2; |
| 20 | +INSERT INTO t2(c) SELECT c FROM t2; |
| 21 | +INSERT INTO t2(c) SELECT c FROM t2; |
| 22 | +INSERT INTO t2(c) SELECT c FROM t2; |
| 23 | +INSERT INTO t1(b,c) SELECT b,c FROM t2; |
| 24 | +UPDATE t2 SET c='2007-01-02'; |
| 25 | +INSERT INTO t1(b,c) SELECT b,c FROM t2; |
| 26 | +UPDATE t2 SET c='2007-01-03'; |
| 27 | +INSERT INTO t1(b,c) SELECT b,c FROM t2; |
| 28 | +set @@sort_buffer_size=8192; |
| 29 | +Warnings: |
| 30 | +Warning 1292 Truncated incorrect sort_buffer_size value: '8192' |
| 31 | +SELECT COUNT(*) FROM t1; |
| 32 | +COUNT(*) |
| 33 | +3072 |
| 34 | +EXPLAIN |
| 35 | +SELECT COUNT(*) FROM t1 FORCE INDEX(idx_b, idx_c) |
| 36 | +WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1; |
| 37 | +id select_type table partitions type possible_keys key key_len ref rows filtered Extra |
| 38 | +1 SIMPLE t1 NULL index_merge idx_b,idx_c idx_c,idx_b 5,4 NULL # 100.00 Using sort_union(idx_c,idx_b); Using where |
| 39 | +Warnings: |
| 40 | +Note 1003 /* select#1 */ select count(0) AS `COUNT(*)` from `test`.`t1` FORCE INDEX (`idx_c`) FORCE INDEX (`idx_b`) where (((`test`.`t1`.`c` >= '2007-01-02') and (`test`.`t1`.`c` <= '2007-01-03')) or (`test`.`t1`.`b` >= 1)) |
| 41 | +SELECT COUNT(*) FROM t1 FORCE INDEX(idx_b, idx_c) |
| 42 | +WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1; |
| 43 | +COUNT(*) |
| 44 | +3072 |
| 45 | +set @@sort_buffer_size=default; |
| 46 | +DROP TABLE t1,t2; |
| 47 | +set optimizer_switch='semijoin=off'; |
| 48 | +set optimizer_switch='materialization=off'; |
| 49 | +CREATE TABLE t1 (topic BIGINT NOT NULL DEFAULT 0); |
| 50 | +SET @@session.sort_buffer_size=32768; |
| 51 | +SELECT * from t1 WHERE topic IN |
| 52 | +(SELECT topic FROM t1 GROUP BY topic HAVING topic < 2000) |
| 53 | +LIMIT 2 |
| 54 | +; |
| 55 | +topic |
| 56 | +1370 |
| 57 | +1369 |
| 58 | +SET @@session.sort_buffer_size=DEFAULT; |
| 59 | +drop table t1; |
| 60 | +set optimizer_switch=default; |
0 commit comments