SET @save_stats_persistent=@@GLOBAL.innodb_stats_persistent; SET GLOBAL innodb_stats_persistent=0; SET SESSION DEFAULT_STORAGE_ENGINE = InnoDB;
drop table if exists t1, t2, t3,t4;
create table t1 (
pk1 int not NULL,
key1 int(11),
key2 int(11),
PRIMARY KEY (pk1),
KEY key1 (key1),
KEY key2 (key2)
);
insert into t1 values (-5, 1, 1),
(-100, 1, 1),
(3, 1, 1),
(0, 1, 1),
(10, 1, 1);
explain select * from t1 force index(key1, key2) where key1 < 3or key2 < 3;
id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 5 Using sort_union(key1,key2); Using where
select * from t1 force index(key1, key2) where key1 < 3or key2 < 3;
pk1 key1 key2
-10011
-511 011 311 1011
drop table t1;
create table t1 (
pk1 int unsigned not NULL,
key1 int(11),
key2 int(11),
PRIMARY KEY (pk1),
KEY key1 (key1),
KEY key2 (key2)
);
insert into t1 values (0, 1, 1),
(0xFFFFFFFF, 1, 1),
(0xFFFFFFFE, 1, 1),
(1, 1, 1),
(2, 1, 1);
select * from t1 force index(key1, key2) where key1 < 3or key2 < 3;
pk1 key1 key2 011 111 211 429496729411 429496729511
drop table t1;
create table t1 (
pk1 char(4) not NULL,
key1 int(11),
key2 int(11),
PRIMARY KEY (pk1),
KEY key1 (key1),
KEY key2 (key2)
) collate latin2_general_ci;
insert into t1 values ('a1', 1, 1),
('b2', 1, 1),
('A3', 1, 1),
('B4', 1, 1);
select * from t1 force index(key1, key2) where key1 < 3or key2 < 3;
pk1 key1 key2
a1 11
A3 11
b2 11
B4 11
drop table t1;
create table t1 (
pk1 int not NULL,
pk2 char(4) not NULL collate latin1_german1_ci,
pk3 char(4) not NULL collate latin1_bin,
key1 int(11),
key2 int(11),
PRIMARY KEY (pk1,pk2,pk3),
KEY key1 (key1),
KEY key2 (key2)
);
insert into t1 values
(1, 'u', 'u', 1, 1),
(1, 'u', char(0xEC), 1, 1),
(1, 'u', 'x', 1, 1);
insert ignore into t1 select pk1, char(0xEC), pk3, key1, key2 from t1;
insert ignore into t1 select pk1, 'x', pk3, key1, key2 from t1 where pk2='u';
insert ignore into t1 select 2, pk2, pk3, key1, key2 from t1;
select * from t1;
pk1 pk2 pk3 key1 key2 1 ì u 11 1 ì x 11 1 ì ì 11 1 u u 11 1 u x 11 1 u ì 11 1 x u 11 1 x x 11 1 x ì 11 2 ì u 11 2 ì x 11 2 ì ì 11 2 u u 11 2 u x 11 2 u ì 11 2 x u 11 2 x x 11 2 x ì 11
select * from t1 force index(key1, key2) where key1 < 3or key2 < 3;
pk1 pk2 pk3 key1 key2 1 ì u 11 1 ì x 11 1 ì ì 11 1 u u 11 1 u x 11 1 u ì 11 1 x u 11 1 x x 11 1 x ì 11 2 ì u 11 2 ì x 11 2 ì ì 11 2 u u 11 2 u x 11 2 u ì 11 2 x u 11 2 x x 11 2 x ì 11
alter table t1 drop primary key;
select * from t1;
pk1 pk2 pk3 key1 key2 1 ì u 11 1 ì x 11 1 ì ì 11 1 u u 11 1 u x 11 1 u ì 11 1 x u 11 1 x x 11 1 x ì 11 2 ì u 11 2 ì x 11 2 ì ì 11 2 u u 11 2 u x 11 2 u ì 11 2 x u 11 2 x x 11 2 x ì 11
select * from t1 force index(key1, key2) where key1 < 3or key2 < 3;
pk1 pk2 pk3 key1 key2 1 ì u 11 1 ì x 11 1 ì ì 11 1 u u 11 1 u x 11 1 u ì 11 1 x u 11 1 x x 11 1 x ì 11 2 ì u 11 2 ì x 11 2 ì ì 11 2 u u 11 2 u x 11 2 u ì 11 2 x u 11 2 x x 11 2 x ì 11
drop table t1;
create table t1 (
pk1 varchar(8) NOT NULL default '',
pk2 varchar(4) NOT NULL default '',
key1 int(11),
key2 int(11),
primary key(pk1, pk2),
KEY key1 (key1),
KEY key2 (key2)
);
insert into t1 values ('','empt',2,2),
('a','a--a',2,2),
('bb','b--b',2,2),
('ccc','c--c',2,2),
('dddd','d--d',2,2);
select * from t1 force index(key1, key2) where key1 < 3or key2 < 3;
pk1 pk2 key1 key2
empt 22
a a--a 22
bb b--b 22
ccc c--c 22
dddd d--d 22
drop table t1; SET GLOBAL innodb_stats_persistent=@save_stats_persistent;
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet am 2026-10-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.