mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
c2cb9b97be
Change optimizer to prefer key lookups before table scan Change table scans to be done after tables with constrains on scanned table mysql-test/r/distinct.result: Update results mysql-test/r/group_by.result: Update results mysql-test/r/heap.result: Update results mysql-test/r/join.result: Update results mysql-test/r/key_diff.result: Update results mysql-test/r/myisam.result: Update results mysql-test/r/order_by.result: Update results mysql-test/r/select_safe.result: Update results mysql-test/t/distinct.test: Change test to be repeatable mysql-test/t/join.test: Change test to be repeatable mysql-test/t/select_safe.test: Add tests for MAX_SEEKS_FOR_KEY sql/handler.h: Optimize structure for 64 bit machines (and to avoid problems with gdb) sql/item_cmpfunc.cc: Initialize not_null_tables_cache properly sql/mysqld.cc: Added max_seeks_for_key sql/set_var.cc: Added max_seeks_for_key sql/sql_class.h: Added max_seeks_for_key sql/sql_select.cc: Added max_seeks_for_key Change optimizer to prefer key lookups before table scan. Change table scans to be done after tables with constrains on scanned table
52 lines
777 B
Text
52 lines
777 B
Text
drop table if exists t1;
|
|
CREATE TABLE t1 (
|
|
a char(5) NOT NULL,
|
|
b char(4) NOT NULL,
|
|
KEY (a),
|
|
KEY (b)
|
|
);
|
|
INSERT INTO t1 VALUES ('A','B'),('b','A'),('C','c'),('D','E'),('a','a');
|
|
select * from t1,t1 as t2;
|
|
a b a b
|
|
A B A B
|
|
b A A B
|
|
C c A B
|
|
D E A B
|
|
a a A B
|
|
A B b A
|
|
b A b A
|
|
C c b A
|
|
D E b A
|
|
a a b A
|
|
A B C c
|
|
b A C c
|
|
C c C c
|
|
D E C c
|
|
a a C c
|
|
A B D E
|
|
b A D E
|
|
C c D E
|
|
D E D E
|
|
a a D E
|
|
A B a a
|
|
b A a a
|
|
C c a a
|
|
D E a a
|
|
a a a a
|
|
explain select t1.*,t2.* from t1,t1 as t2 where t1.A=t2.B;
|
|
table type possible_keys key key_len ref rows Extra
|
|
t1 ALL a NULL NULL NULL 5
|
|
t2 ALL b NULL NULL NULL 4 Using where
|
|
select t1.*,t2.* from t1,t1 as t2 where t1.A=t2.B order by binary t1.a,t2.a;
|
|
a b a b
|
|
A B a a
|
|
A B b A
|
|
C c C c
|
|
a a a a
|
|
a a b A
|
|
b A A B
|
|
select * from t1 where a='a';
|
|
a b
|
|
A B
|
|
a a
|
|
drop table t1;
|