隐式列索引

时间:2015-04-17 06:52:12

标签: mysql database indexing

给出以下MySQL表(InnoDB类型):

CREATE TABLE `table` (
  `id`      INT     NOT NULL,
  `foo_id`  INT     NOT NULL,
  `bar_id`  INT     NOT NULL,
  `name`    VARCHAR NOT NULL,

  PRIMARY KEY (`id`),

  INDEX   `on_foo_id` (`foo_id`),
  INDEX   `on_bar_id` (`bar_id`),

  UNIQUE  `on_foo_bar_id` (`btl_foo_id`, `btl_bar_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

注意:即使我没有使用MySQL FOREIGN KEY约束(我是Rails开发人员在应用级别处理此问题),列foo_id& bar_id是外键。

由于存在:

  1. bar_id的索引
  2. foo_idbar_id)的索引
  3. ...我想知道foo_id上的索引是否真的相关。即使没有明确地将此列声明为索引,MySQL也可能已经索引foo_id

    换句话说,是否可以删除此行:

    INDEX   `on_foo_id` (`foo_id`),
    

    没有改变表演?

    谢谢你的光。

0 个答案:

没有答案