索引的使用跟查询的and的前后顺序没有关系
依然记得以前看网上的帖子的时候说查询要按照顺序来,不能将and的前后顺序弄反了,不然用不了索引.今天上课听老师讲才发现原来跟and的顺序没关系.使用的引擎是innodb.
--创建一个表
create table testindex (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
detail varchar(200) NOT NULL,
contact varchar(50) NOT NULL,
primary key (id)
) engine=innodb
;
--创建索引
alter table testindex add index idx(detail, contact);
--插入一条数据
insert into testindex(detail, contact) values('aa', 'bb');
按照跟创建idx的顺序一致的顺序查询
发现key:idx,说明使用了索引.
而and语句前后顺序对调,
key也是idx,说明也使用了索引.
而写到这里我想了一下,应该使我以前理解错了网上的帖子,网上说的顺序指的是: 比如建了一个索引idx(A, B, C),他说的是要使用A, AB, ABC这样的顺序查询,而使用B, BC, 这样是使用不到索引的.而我理解成了and的前后顺序要跟这一样.