mysql索引最左匹配原则
转自知乎问题: mysql索引最左匹配原则的理解? 具体问题描述如下: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `cid` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `name_cid_INX` (`name`,`cid`), KEY `name_INX` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 随便建了一个student表做测试。 create INDEX name_cid_INX ON student(name,cid) ; create INDEX name_INX ON student(name); 建了两个索引,故意这样建的。 执行1: EXPLAIN SELECT * FROM student WHERE name = '小红' ; 依据mysql索引最左匹配原则,两个索引都匹配上了,这个没有问题。。 执行2: EXPLAIN SELECT * FROM student WHERE cid = 1 ; EXPLAIN SELECT * FROM student WHERE cid=1