这个问题涉及到MySQL表需要有ID吗?
对于一个表而言,有一个无意义的自增ID作为主键,那么当我创建其他键时,是否应该在这些键中包含此ID?
例如,在这个表中:
CREATE TABLE `location` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`country` varchar(50),
`states` varchar(50),
`city` varchar(50),
`county` varchar(50),
`zip` int(5),
PRIMARY KEY(ID),
KEY zip1 (zip),
KEY zip2 (zip, ID)
} ENGINE=InnoDB ;
因为我经常需要使用邮政编码来搜索表格,所以我需要一个以邮政编码开头的KEY。我应该使用KEY zip1还是KEY zip2?这两个KEY中哪一个更好?