mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Optimization of key usage (ORDER BY) (SCRUM)
This commit is contained in:
@ -506,3 +506,37 @@ SELECT titre,t1.numeropost,auteur,icone,nbrep,'0',date,vue,ouvert,lastauteur,des
|
||||
titre numeropost auteur icone nbrep 0 date vue ouvert lastauteur dest
|
||||
test 1 joce 0 0 0 0000-00-00 00:00:00 0 1 bug
|
||||
drop table t1,t2;
|
||||
CREATE TABLE t1 (
|
||||
FieldKey varchar(36) NOT NULL default '',
|
||||
LongVal bigint(20) default NULL,
|
||||
StringVal mediumtext,
|
||||
KEY FieldKey (FieldKey),
|
||||
KEY LongField (FieldKey,LongVal),
|
||||
KEY StringField (FieldKey,StringVal(32))
|
||||
);
|
||||
INSERT INTO t1 VALUES ('0',3,'0'),('1',2,'1'),('1',1,'3'), ('1',0,'2');
|
||||
EXPLAIN SELECT * FROM t1 WHERE FieldKey = '1' ORDER BY LongVal;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref FieldKey,LongField,StringField LongField 36 const 2 Using where
|
||||
SELECT * FROM t1 WHERE FieldKey = '1' ORDER BY LongVal;
|
||||
FieldKey LongVal StringVal
|
||||
1 0 2
|
||||
1 1 3
|
||||
1 2 1
|
||||
EXPLAIN SELECT * FROM t1 WHERE FieldKey > '0' ORDER BY LongVal;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range FieldKey,LongField,StringField FieldKey 36 NULL 3 Using where; Using filesort
|
||||
SELECT * FROM t1 WHERE FieldKey > '0' ORDER BY LongVal;
|
||||
FieldKey LongVal StringVal
|
||||
1 0 2
|
||||
1 1 3
|
||||
1 2 1
|
||||
EXPLAIN SELECT * FROM t1 WHERE FieldKey > '0' ORDER BY FieldKey, LongVal;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range FieldKey,LongField,StringField LongField 36 NULL 3 Using where
|
||||
SELECT * FROM t1 WHERE FieldKey > '0' ORDER BY FieldKey, LongVal;
|
||||
FieldKey LongVal StringVal
|
||||
1 0 2
|
||||
1 1 3
|
||||
1 2 1
|
||||
DROP TABLE t1;
|
||||
|
@ -330,3 +330,24 @@ INSERT INTO t2 (numeropost,pseudo) VALUES (1,'joce'),(1,'bug');
|
||||
SELECT titre,t1.numeropost,auteur,icone,nbrep,0,date,vue,ouvert,lastauteur,dest FROM t2 LEFT JOIN t1 USING(numeropost) WHERE t2.pseudo='joce' ORDER BY date DESC LIMIT 0,30;
|
||||
SELECT titre,t1.numeropost,auteur,icone,nbrep,'0',date,vue,ouvert,lastauteur,dest FROM t2 LEFT JOIN t1 USING(numeropost) WHERE t2.pseudo='joce' ORDER BY date DESC LIMIT 0,30;
|
||||
drop table t1,t2;
|
||||
|
||||
#
|
||||
# Test of test_if_subkey() function
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (
|
||||
FieldKey varchar(36) NOT NULL default '',
|
||||
LongVal bigint(20) default NULL,
|
||||
StringVal mediumtext,
|
||||
KEY FieldKey (FieldKey),
|
||||
KEY LongField (FieldKey,LongVal),
|
||||
KEY StringField (FieldKey,StringVal(32))
|
||||
);
|
||||
INSERT INTO t1 VALUES ('0',3,'0'),('1',2,'1'),('1',1,'3'), ('1',0,'2');
|
||||
EXPLAIN SELECT * FROM t1 WHERE FieldKey = '1' ORDER BY LongVal;
|
||||
SELECT * FROM t1 WHERE FieldKey = '1' ORDER BY LongVal;
|
||||
EXPLAIN SELECT * FROM t1 WHERE FieldKey > '0' ORDER BY LongVal;
|
||||
SELECT * FROM t1 WHERE FieldKey > '0' ORDER BY LongVal;
|
||||
EXPLAIN SELECT * FROM t1 WHERE FieldKey > '0' ORDER BY FieldKey, LongVal;
|
||||
SELECT * FROM t1 WHERE FieldKey > '0' ORDER BY FieldKey, LongVal;
|
||||
DROP TABLE t1;
|
||||
|
Reference in New Issue
Block a user