【发布时间】:2016-03-31 17:40:36
【问题描述】:
我有一个名为Votes 的表。现在我在它的一些列上有几个 FK(外键)。如您所知,我需要在 FK 列上创建一个索引。如果我在列上创建索引(例如User.id上的Votes.user_id),读写速度会提高还是降低?
我问是因为我需要在多个列上设置 FK:
// Votes table
. post_id on Posts.id
. user_id on Users.id
. author_id on Users.id
我还需要(Post_id, user_id) 上的唯一索引来检测重复投票。无论如何,三个独立的索引和一个唯一的索引在 Votes 表上是正常的吗?
【问题讨论】:
-
顺便说一句:
author_id接缝是多余的。我猜它已经存储在Posts表中。 -
@PaulSpiegel 是的
author_id已经存储在Posts表中,但是我需要在使用触发器插入投票后向作者发送通知。 -
您可以从
Posts中选择author_id或在触发器中的INSERT/UPDATE语句中使用JOIN Posts。也许你就这个问题提出了一个新问题,因为这里已经过时了。
标签: mysql database-design indexing foreign-keys unique-constraint