chell Asked: 2015-09-10 16:30:48 +0800 CST2015-09-10 16:30:48 +0800 CST 2015-09-10 16:30:48 +0800 CST 是否需要针对多列 PK 之一进行查找的单独索引? 772 抱歉,如果这是一个常见问题解答,但我在准确地找到我要问的问题时遇到了问题: 我有一个带有主键的表(mysql),它由多个列组成,只是因为这是使 PK 唯一的必要条件(不会使用自动增量列)。 但是,大多数查找将仅针对主键中的第一列。 那么我应该有一个单独的索引只包含那个单列,还是多列 PK 就足够了(至少只要查询列在索引定义中排在第一位)? mysql index 1 个回答 Voted Best Answer Jehad Keriaki 2015-09-10T17:03:35+08:002015-09-10T17:03:35+08:00 总之,够用了。只要搜索字段在复合索引(PK、唯一或常规索引)中的第一个,就不需要其他单独的索引。 但是,你提到你 (不会使用自动增量列) 这是有原因的吗?复合 PK 可能会影响性能,特别是如果您使用的是 InnoDB 引擎,并且如果您对表进行了很多更新(插入/更新/删除)
总之,够用了。只要搜索字段在复合索引(PK、唯一或常规索引)中的第一个,就不需要其他单独的索引。
但是,你提到你
这是有原因的吗?复合 PK 可能会影响性能,特别是如果您使用的是 InnoDB 引擎,并且如果您对表进行了很多更新(插入/更新/删除)