请问为什么 MySQL 没有使用 'playerLead_status_INDEX' 索引?
CREATE TABLE `bcs_player_lead`(
`id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(100) DEFAULT NULL,
`last_name` varchar(100) DEFAULT NULL,
`email_id` varchar(100) DEFAULT NULL,
`city` varchar(100) DEFAULT NULL,
`state` varchar(100) DEFAULT NULL,
`country` varchar(100) DEFAULT NULL,
`created` datetime DEFAULT NULL,
`status` int(11) DEFAULT NULL COMMENT '1-New,2-invitation send',
PRIMARY KEY (`id`),
KEY `playerLead_status_INDEX` (`status`)
) ENGINE=InnoDB AUTO_INCREMENT=510 DEFAULT CHARSET=latin1;
解释SELECT email_id,id,NULL,first_name,last_name,NULL,state,city,NULL,(2) as type FROM bcs_player_lead WHERE status='1'
id|select_type|table |type|possible_keys |key |key_len |ref |rows |Extra
1 |SIMPLE |bcs_player_lead |ALL |playerLead_status_INDEX|{null}|{null}|{null}| 458 |Using where
bcs_player_lead有两个键 -
- 通过ID的PRIMARY
- 通过status的playerLead_status_INDEX
谢谢!
force index
只是一个检查。在你的情况下,由于它只获取了 500 行,即使它不进行索引搜索,你也不会感到任何滞后。 - Rahul