您是否需要显式创建索引,还是在定义主键时是隐式的?MyISAM和InnoDB的答案是否相同?
我有一个用GUI工具创建的数据库,我注意到似乎是KEY(aka INDEX)定义的不一致使用:
CREATE TABLE `foo_bar` (
`foo_id` int(10) unsigned NOT NULL,
`bar_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`foo_id`, `bar_id`),
KEY `foo_bar_fk2` (`bar_id`), -- <== ???
CONSTRAINT `foo_bar_fk1` FOREIGN KEY (`foo_id`) REFERENCES `foo` (`foo_id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `foo_bar_fk2` FOREIGN KEY (`bar_id`) REFERENCES `bar` (`bar_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci COMMENT='Links between Foo and Bar';
Run Code Online (Sandbox Code Playgroud)
我有关于索引的以下问题: