MySQL密钥索引不起作用,使用where搜索所有行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL密钥索引不起作用,使用where搜索所有行相关的知识,希望对你有一定的参考价值。
基本上我创建了一个表:
CREATE TABLE IF NOT EXISTS `student` (
`id` int(4) unsigned NOT NULL AUTO_INCREMENT,
`campus` enum('CAMPUS1', 'CAMPUS2') NOT NULL,
`fullname` char(32) NOT NULL,
`gender` enum('MALE', 'FEMALE') NOT NULL,
`birthday` char(16) NOT NULL,
`phone` char(32) NOT NULL,
`emergency` char(32) NOT NULL,
`address` char(128) NOT NULL,
PRIMARY KEY (`idx`),
KEY `key_student` (`campus`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
我喜欢20行,CAMPUS1只有12行
但是当我使用查询时:SELECT * FROM student WHERE campus='CAMPUS1';
EXPLAIN
是这样的:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE student ALL key_student NULL NULL NULL 20 Using where
我是新手,KEY
如何真正起作用?我阅读了文档,但我无法理解。
以上是关于MySQL密钥索引不起作用,使用where搜索所有行的主要内容,如果未能解决你的问题,请参考以下文章