我应该在列上定义一个单独的索引email(用于搜索目的),还是"自动"添加索引以及UNIQ_EMAIL_USER约束?
CREATE TABLE IF NOT EXISTS `customer` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`first` varchar(255) NOT NULL,
`last` varchar(255) NOT NULL,
`slug` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `UNIQ_SLUG` (`slug`),
UNIQUE KEY `UNIQ_EMAIL_USER` (`email`,`user_id`),
KEY `IDX_USER` (`user_id`)
) ENGINE=InnoDB;
Run Code Online (Sandbox Code Playgroud)
编辑:正如Corbin所建议我EXPLAIN SELECT * FROM customer WHERE email = 'address'在空桌上查询.这是结果,我不知道如何解释它:
id select_type type possible_keys key key_len …Run Code Online (Sandbox Code Playgroud)