diff options
author | unknown <sergefp@mysql.com> | 2008-05-07 09:58:21 +0400 |
---|---|---|
committer | unknown <sergefp@mysql.com> | 2008-05-07 09:58:21 +0400 |
commit | 87e5098249e9a60f7a562b611478a2210f9daa24 (patch) | |
tree | c0c403c46232519fc6282e931ace54ee41bf79ee /mysql-test/r | |
parent | d1361c86e7e2d094c105c5991acff03b235f2482 (diff) | |
download | mariadb-git-87e5098249e9a60f7a562b611478a2210f9daa24.tar.gz |
BUG#35850 "Performance regression in 5.1.23/5.1.24"
- Disable the "prefer full scan on clustered primary key over full scan
of any secondary key" rule introduced by BUG#35850.
- Update test results accordingly
(bk trigger: file this for BUG#35850)
mysql-test/r/innodb.result:
BUG#35850 "Performance regression in 5.1.23/5.1.24"
- Update test results
mysql-test/r/innodb_mysql.result:
BUG#35850 "Performance regression in 5.1.23/5.1.24"
- Testcase
- Update test results
mysql-test/r/join_outer_innodb.result:
BUG#35850 "Performance regression in 5.1.23/5.1.24"
- Update test results
mysql-test/t/innodb_mysql.test:
BUG#35850 "Performance regression in 5.1.23/5.1.24"
- Testcase
sql/sql_select.cc:
BUG#35850 "Performance regression in 5.1.23/5.1.24"
- Disable the "prefer full scan on clustered primary key over full scan
of any secondary key" rule introduced by BUG#35850.
Diffstat (limited to 'mysql-test/r')
-rw-r--r-- | mysql-test/r/innodb.result | 30 | ||||
-rw-r--r-- | mysql-test/r/innodb_mysql.result | 26 | ||||
-rw-r--r-- | mysql-test/r/join_outer_innodb.result | 4 |
3 files changed, 35 insertions, 25 deletions
diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result index 0cd276852bf..c244c948211 100644 --- a/mysql-test/r/innodb.result +++ b/mysql-test/r/innodb.result @@ -925,7 +925,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index NULL b 4 NULL # Using index explain select a,b from t1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index NULL PRIMARY 4 NULL # +1 SIMPLE t1 index NULL b 4 NULL # Using index explain select a,b,c from t1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL # @@ -1166,14 +1166,14 @@ UPDATE t1 set a=a+100 where b between 2 and 3 and a < 1000; SELECT * from t1; a b 1 1 +102 2 +103 3 4 4 5 5 6 6 7 7 8 8 9 9 -102 2 -103 3 drop table t1; CREATE TABLE t1 (a int not null primary key, b int not null, key (b)) engine=innodb; CREATE TABLE t2 (a int not null primary key, b int not null, key (b)) engine=innodb; @@ -1197,6 +1197,7 @@ a b update t1,t2 set t1.a=t1.a+100 where t1.a=101; select * from t1; a b +201 1 102 2 103 3 104 4 @@ -1208,11 +1209,10 @@ a b 110 10 111 11 112 12 -201 1 update t1,t2 set t1.b=t1.b+10 where t1.b=2; select * from t1; a b -102 12 +201 1 103 3 104 4 105 5 @@ -1222,34 +1222,34 @@ a b 109 9 110 10 111 11 +102 12 112 12 -201 1 update t1,t2 set t1.b=t1.b+2,t2.b=t1.b+10 where t1.b between 3 and 5 and t1.a=t2.a+100; select * from t1; a b -102 12 +201 1 103 5 104 6 -105 7 106 6 +105 7 107 7 108 8 109 9 110 10 111 11 +102 12 112 12 -201 1 select * from t2; a b 1 1 2 2 -3 13 -4 14 -5 15 6 6 7 7 8 8 9 9 +3 13 +4 14 +5 15 drop table t1,t2; CREATE TABLE t2 ( NEXT_T BIGINT NOT NULL PRIMARY KEY) ENGINE=MyISAM; CREATE TABLE t1 ( B_ID INTEGER NOT NULL PRIMARY KEY) ENGINE=InnoDB; @@ -1300,11 +1300,11 @@ insert into t1 (id) values (null),(null),(null),(null),(null); update t1 set fk=69 where fk is null order by id limit 1; SELECT * from t1; id fk -1 69 2 NULL 3 NULL 4 NULL 5 NULL +1 69 drop table t1; create table t1 (a int not null, b int not null, key (a)); insert into t1 values (1,1),(1,2),(1,3),(3,1),(3,2),(3,3),(3,1),(3,2),(3,3),(2,1),(2,2),(2,3); @@ -2438,8 +2438,8 @@ insert into t1 (b) values (1); replace into t1 (b) values (2), (1), (3); select * from t1; a b -2 2 3 1 +2 2 4 3 truncate table t1; insert into t1 (b) values (1); @@ -2448,8 +2448,8 @@ replace into t1 (b) values (1); replace into t1 (b) values (3); select * from t1; a b -2 2 3 1 +2 2 4 3 drop table t1; create table t1 (rowid int not null auto_increment, val int not null,primary diff --git a/mysql-test/r/innodb_mysql.result b/mysql-test/r/innodb_mysql.result index 8008fd50a90..ab279933853 100644 --- a/mysql-test/r/innodb_mysql.result +++ b/mysql-test/r/innodb_mysql.result @@ -355,13 +355,13 @@ 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 -1 SIMPLE t1 index PRIMARY,name PRIMARY 4 NULL 3 Using where +1 SIMPLE t1 index PRIMARY,name name 23 NULL 3 Using where; Using index 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 -1 SIMPLE t2 index NULL PRIMARY 4 NULL 5 +1 SIMPLE t2 index NULL fkey 5 NULL 5 Using index 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.fkey 1 Using where DROP TABLE t1,t2; CREATE TABLE t1 ( @@ -1268,11 +1268,11 @@ select_type SIMPLE table t1 type index possible_keys NULL -key PRIMARY -key_len 4 +key b +key_len 5 ref NULL rows 3 -Extra Using filesort +Extra Using index; Using filesort SELECT * FROM t1 ORDER BY b ASC, a DESC; a b 1 1 @@ -1284,11 +1284,11 @@ select_type SIMPLE table t1 type index possible_keys NULL -key PRIMARY -key_len 4 +key b +key_len 5 ref NULL rows 3 -Extra Using filesort +Extra Using index; Using filesort SELECT * FROM t1 ORDER BY b DESC, a ASC; a b 2 2 @@ -1654,3 +1654,13 @@ ALTER TABLE t1 CHANGE id id2 INT; DROP TABLE t2; DROP TABLE t1; End of 5.1 tests +drop table if exists t1, t2, t3; +create table t1(a int); +insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t2 (a int, b int, pk int, key(a,b), primary key(pk)) engine=innodb; +insert into t2 select @a:=A.a+10*(B.a + 10*C.a),@a, @a from t1 A, t1 B, t1 C; +this must use key 'a', not PRIMARY: +explain select a from t2 where a=b; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t2 index NULL a 10 NULL # Using where; Using index +drop table t1, t2; diff --git a/mysql-test/r/join_outer_innodb.result b/mysql-test/r/join_outer_innodb.result index 24a11b12b03..e8a2d6f668b 100644 --- a/mysql-test/r/join_outer_innodb.result +++ b/mysql-test/r/join_outer_innodb.result @@ -8,12 +8,12 @@ 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 -1 SIMPLE t1 index PRIMARY,name PRIMARY 4 NULL 3 Using where +1 SIMPLE t1 index PRIMARY,name name 23 NULL 3 Using where; Using index 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 -1 SIMPLE t2 index NULL PRIMARY 4 NULL 5 +1 SIMPLE t2 index NULL fkey 5 NULL 5 Using index 1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.fkey 1 Using where DROP TABLE t1,t2; |