mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 21:42:35 +01:00
f874071a26
If cost(full_scan_on_shortest_covering_index) < cost(best_range_scan) < cost(full_table_scan) use full_scan_on_shortest_covering_index (before this fix best_range_scan was used)
237 lines
8.8 KiB
Text
237 lines
8.8 KiB
Text
drop table if exists t1,t2,t3;
|
|
SET SQL_WARNINGS=1;
|
|
CREATE TABLE t1 (
|
|
ID CHAR(32) NOT NULL,
|
|
name CHAR(32) NOT NULL,
|
|
value CHAR(255),
|
|
INDEX indexIDname (ID(8),name(8))
|
|
) ;
|
|
INSERT INTO t1 VALUES
|
|
('keyword','indexdir','/export/home/local/www/database/indexes/keyword');
|
|
INSERT INTO t1 VALUES ('keyword','urlprefix','text/ /text');
|
|
INSERT INTO t1 VALUES ('keyword','urlmap','/text/ /');
|
|
INSERT INTO t1 VALUES ('keyword','attr','personal employee company');
|
|
INSERT INTO t1 VALUES
|
|
('emailgids','indexdir','/export/home/local/www/database/indexes/emailgids');
|
|
INSERT INTO t1 VALUES ('emailgids','urlprefix','text/ /text');
|
|
INSERT INTO t1 VALUES ('emailgids','urlmap','/text/ /');
|
|
INSERT INTO t1 VALUES ('emailgids','attr','personal employee company');
|
|
SELECT value FROM t1 WHERE ID='emailgids' AND name='attr';
|
|
value
|
|
personal employee company
|
|
drop table t1;
|
|
CREATE TABLE t1 (
|
|
price int(5) DEFAULT '0' NOT NULL,
|
|
area varchar(40) DEFAULT '' NOT NULL,
|
|
type varchar(40) DEFAULT '' NOT NULL,
|
|
transityes enum('Y','N') DEFAULT 'Y' NOT NULL,
|
|
shopsyes enum('Y','N') DEFAULT 'Y' NOT NULL,
|
|
schoolsyes enum('Y','N') DEFAULT 'Y' NOT NULL,
|
|
petsyes enum('Y','N') DEFAULT 'Y' NOT NULL,
|
|
KEY price (price,area,type,transityes,shopsyes,schoolsyes,petsyes)
|
|
);
|
|
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','N','N','N','N');
|
|
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','N','N','N','N');
|
|
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','','','','');
|
|
Warnings:
|
|
Warning 1265 Data truncated for column 'transityes' at row 1
|
|
Warning 1265 Data truncated for column 'shopsyes' at row 1
|
|
Warning 1265 Data truncated for column 'schoolsyes' at row 1
|
|
Warning 1265 Data truncated for column 'petsyes' at row 1
|
|
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y');
|
|
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y');
|
|
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y');
|
|
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y');
|
|
INSERT INTO t1 VALUES (900,'Vancouver','Shared/Roomate','Y','Y','Y','Y');
|
|
SELECT * FROM t1 WHERE area='Vancouver' and transityes='y' and schoolsyes='y' and ( ((type='1 Bedroom' or type='Studio/Bach') and (price<=500)) or ((type='2 Bedroom') and (price<=550)) or ((type='Shared/Roomate') and (price<=300)) or ((type='Room and Board') and (price<=500)) ) and price <= 400;
|
|
price area type transityes shopsyes schoolsyes petsyes
|
|
drop table t1;
|
|
CREATE TABLE t1 (program enum('signup','unique','sliding') not null, type enum('basic','sliding','signup'), sites set('mt'), PRIMARY KEY (program));
|
|
ALTER TABLE t1 modify program enum('signup','unique','sliding');
|
|
drop table t1;
|
|
CREATE TABLE t1 (
|
|
name varchar(50) DEFAULT '' NOT NULL,
|
|
author varchar(50) DEFAULT '' NOT NULL,
|
|
category decimal(10,0) DEFAULT '0' NOT NULL,
|
|
email varchar(50),
|
|
password varchar(50),
|
|
proxy varchar(50),
|
|
bitmap varchar(20),
|
|
msg varchar(255),
|
|
urlscol varchar(127),
|
|
urlhttp varchar(127),
|
|
timeout decimal(10,0),
|
|
nbcnx decimal(10,0),
|
|
creation decimal(10,0),
|
|
livinguntil decimal(10,0),
|
|
lang decimal(10,0),
|
|
type decimal(10,0),
|
|
subcat decimal(10,0),
|
|
subtype decimal(10,0),
|
|
reg char(1),
|
|
scs varchar(255),
|
|
capacity decimal(10,0),
|
|
userISP varchar(50),
|
|
CCident varchar(50) DEFAULT '' NOT NULL,
|
|
PRIMARY KEY (name,author,category)
|
|
);
|
|
INSERT INTO t1 VALUES
|
|
('patnom','patauteur',0,'p.favre@cryo-networks.fr',NULL,NULL,'#p2sndnq6ae5g1u6t','essai\nsalut','scol://195.242.78.119:patauteur.patnom',NULL,NULL,NULL,950036174,-882087474,NULL,3,0,3,'1','Pub/patnom/futur_divers.scs',NULL,'pat','CC1');
|
|
INSERT INTO t1 VALUES
|
|
('LeNomDeMonSite','Marc',0,'m.barilley@cryo-networks.fr',NULL,NULL,NULL,NULL,'scol://195.242.78.119:Marc.LeNomDeMonSite',NULL,NULL,NULL,950560434,-881563214,NULL,3,0,3,'1','Pub/LeNomDeMonSite/domus_hibere.scs',NULL,'Marq','CC1');
|
|
select * from t1 where name='patnom' and author='patauteur' and category=0;
|
|
name author category email password proxy bitmap msg urlscol urlhttp timeout nbcnx creation livinguntil lang type subcat subtype reg scs capacity userISP CCident
|
|
patnom patauteur 0 p.favre@cryo-networks.fr NULL NULL #p2sndnq6ae5g1u6t essai
|
|
salut scol://195.242.78.119:patauteur.patnom NULL NULL NULL 950036174 -882087474 NULL 3 0 3 1 Pub/patnom/futur_divers.scs NULL pat CC1
|
|
drop table t1;
|
|
create table t1
|
|
(
|
|
name_id int not null auto_increment,
|
|
name blob,
|
|
INDEX name_idx (name(5)),
|
|
primary key (name_id)
|
|
);
|
|
INSERT t1 VALUES(NULL,'/');
|
|
INSERT t1 VALUES(NULL,'[T,U]_axpby');
|
|
SELECT * FROM t1 WHERE name='[T,U]_axpy';
|
|
name_id name
|
|
SELECT * FROM t1 WHERE name='[T,U]_axpby';
|
|
name_id name
|
|
2 [T,U]_axpby
|
|
create table t2
|
|
(
|
|
name_id int not null auto_increment,
|
|
name char(255) binary,
|
|
INDEX name_idx (name(5)),
|
|
primary key (name_id)
|
|
);
|
|
INSERT t2 select * from t1;
|
|
SELECT * FROM t2 WHERE name='[T,U]_axpy';
|
|
name_id name
|
|
SELECT * FROM t2 WHERE name='[T,U]_axpby';
|
|
name_id name
|
|
2 [T,U]_axpby
|
|
drop table t1,t2;
|
|
create table t1
|
|
(
|
|
SEQNO numeric(12 ) not null,
|
|
MOTYPEID numeric(12 ) not null,
|
|
MOINSTANCEID numeric(12 ) not null,
|
|
ATTRID numeric(12 ) not null,
|
|
VALUE varchar(120) not null,
|
|
primary key (SEQNO, MOTYPEID, MOINSTANCEID, ATTRID, VALUE )
|
|
);
|
|
INSERT INTO t1 VALUES (1, 1, 1, 1, 'a');
|
|
INSERT INTO t1 VALUES (1, 1, 1, 1, 'b');
|
|
INSERT INTO t1 VALUES (1, 1, 1, 1, 'a');
|
|
ERROR 23000: Duplicate entry '1-1-1-1-a' for key 1
|
|
drop table t1;
|
|
CREATE TABLE t1 (
|
|
a tinytext NOT NULL,
|
|
b tinyint(3) unsigned NOT NULL default '0',
|
|
PRIMARY KEY (a(32),b)
|
|
) ENGINE=MyISAM;
|
|
INSERT INTO t1 VALUES ('a',1),('a',2);
|
|
SELECT * FROM t1 WHERE a='a' AND b=2;
|
|
a b
|
|
a 2
|
|
SELECT * FROM t1 WHERE a='a' AND b in (2);
|
|
a b
|
|
a 2
|
|
SELECT * FROM t1 WHERE a='a' AND b in (1,2);
|
|
a b
|
|
a 1
|
|
a 2
|
|
drop table t1;
|
|
create table t1 (a int not null unique, b int unique, c int, d int not null primary key, key(c), e int not null unique);
|
|
show keys from t1;
|
|
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
|
t1 0 PRIMARY 1 d A 0 NULL NULL BTREE
|
|
t1 0 a 1 a A 0 NULL NULL BTREE
|
|
t1 0 e 1 e A 0 NULL NULL BTREE
|
|
t1 0 b 1 b A NULL NULL NULL YES BTREE
|
|
t1 1 c 1 c A NULL NULL NULL YES BTREE
|
|
drop table t1;
|
|
CREATE TABLE t1 (c CHAR(10) NOT NULL,i INT NOT NULL AUTO_INCREMENT,
|
|
UNIQUE (c,i));
|
|
INSERT INTO t1 (c) VALUES (NULL),(NULL);
|
|
Warnings:
|
|
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'c' at row 1
|
|
Warning 1263 Data truncated, NULL supplied to NOT NULL column 'c' at row 2
|
|
SELECT * FROM t1;
|
|
c i
|
|
1
|
|
2
|
|
INSERT INTO t1 (c) VALUES ('a'),('a');
|
|
SELECT * FROM t1;
|
|
c i
|
|
1
|
|
2
|
|
a 1
|
|
a 2
|
|
DROP TABLE IF EXISTS t1;
|
|
CREATE TABLE t1 (c CHAR(10) NULL, i INT NOT NULL AUTO_INCREMENT,
|
|
UNIQUE (c,i));
|
|
INSERT INTO t1 (c) VALUES (NULL),(NULL);
|
|
SELECT * FROM t1;
|
|
c i
|
|
NULL 1
|
|
NULL 2
|
|
INSERT INTO t1 (c) VALUES ('a'),('a');
|
|
SELECT * FROM t1;
|
|
c i
|
|
NULL 1
|
|
NULL 2
|
|
a 1
|
|
a 2
|
|
drop table t1;
|
|
create table t1 (i int, a char(200), b text, unique (a), unique (b(300))) charset utf8;
|
|
insert t1 values (1, repeat('a',210), repeat('b', 310));
|
|
Warnings:
|
|
Warning 1265 Data truncated for column 'a' at row 1
|
|
insert t1 values (2, repeat(0xD0B1,215), repeat(0xD0B1, 310));
|
|
Warnings:
|
|
Warning 1265 Data truncated for column 'a' at row 1
|
|
select i, length(a), length(b), char_length(a), char_length(b) from t1;
|
|
i length(a) length(b) char_length(a) char_length(b)
|
|
1 200 310 200 310
|
|
2 400 620 200 310
|
|
select i from t1 where a=repeat(_utf8 'a',200);
|
|
i
|
|
1
|
|
select i from t1 where a=repeat(_utf8 0xD0B1,200);
|
|
i
|
|
2
|
|
select i from t1 where b=repeat(_utf8 'b',310);
|
|
i
|
|
1
|
|
drop table t1;
|
|
CREATE TABLE t1 (id int unsigned auto_increment, name char(50), primary key (id)) engine=myisam;
|
|
insert into t1 (name) values ('a'), ('b'),('c'),('d'),('e'),('f'),('g');
|
|
explain select 1 from t1 where id =2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index
|
|
explain select 1 from t1 where id =2 or id=3;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 7 Using where; Using index
|
|
explain select name from t1 where id =2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
|
ALTER TABLE t1 DROP PRIMARY KEY, ADD INDEX (id);
|
|
explain select 1 from t1 where id =2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ref id id 4 const 1 Using index
|
|
drop table t1;
|
|
CREATE TABLE t1 (numeropost mediumint(8) unsigned NOT NULL default '0', numreponse int(10) unsigned NOT NULL auto_increment, PRIMARY KEY (numeropost,numreponse), UNIQUE KEY numreponse (numreponse));
|
|
INSERT INTO t1 (numeropost,numreponse) VALUES ('1','1'),('1','2'),('2','3'),('2','4');
|
|
SELECT numeropost FROM t1 WHERE numreponse='1';
|
|
numeropost
|
|
1
|
|
EXPLAIN SELECT numeropost FROM t1 WHERE numreponse='1';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 const numreponse numreponse 4 const 1 Using index
|
|
FLUSH TABLES;
|
|
SELECT numeropost FROM t1 WHERE numreponse='1';
|
|
numeropost
|
|
1
|
|
drop table t1;
|