我是否使用具有较少列的附加列或索引的唯一索引?

时间:2018-01-28 18:49:35

标签: mysql sql

对于表格中我只有SELECT行,

它有3列[A, B, C]

我可以创建其中一个INDEXES

ALTER TABLE `table` ADD INDEX `A_B` (`A', `B`),ADD INDEX `B_C` (`B`, `C`);

OR

ALTER TABLE `table` ADD UNIQUE INDEX `A_B_C` (`A`, `B`, `C`),ADD INDEX `B_C` (`B`, `C`);

两者都以相同的速度工作,并且在EXPLAIN中具有相同的结果。

我如何决定选择什么?

正常一个是4列,唯一一个是5列以防止重复,

但我SELECT只是table,那么使用普通会更好吗?或者使用唯一赢得了不同之处?

1 个答案:

答案 0 :(得分:2)

在索引中包含更多列会有轻微的开销。

但是,我更喜欢唯一索引,因为它还确保了唯一性 - 也就是说,它强制执行您想要的表的属性。

请注意,如果您已将三个列定义为unique,则无需对其进行单独索引。

我应该补充一点,如果查询中的所有条件都是相等条件,那么一个唯一索引就足够了。