【发布时间】:2012-12-27 05:29:19
【问题描述】:
我正在使用 Innodb 搜索引擎为用户查找表创建一个事件。
表 Event_Users
event_id
user_id
Index (PRIMARY) -> event_id, user_id
Index (secondary) -> user_id, event_id ??
应用程序将搜索用户到事件和事件到用户。如果主键是聚集的,如何定义第二个索引?它应该只是 user_id 然后 MYSQL 会发现 event_id 已经存在于 PK 中还是我应该是多余的并在二级索引中包含 user_id, event_id?
另外,这对聚集索引有用吗?任何有关 Innodb 聚集索引的指导和帮助将不胜感激。谢谢!
【问题讨论】:
-
什么是
secondaryindex btw? -
普通非唯一索引。没什么特别的,但它会像 PK 一样被使用
-
如果您将二级索引保留为复合索引,那么如果您不需要检索其他列,它可以用作
covering index。 -
我做了一些额外的研究,MySQL 应该能够使用 PK 中的字段作为覆盖索引,而无需制作复合二级索引。复合二级索引可以大大减慢插入和更新速度。该表将是重读/写
标签: mysql innodb composite-primary-key