你应该索引多对多表吗?

时间:2011-03-09 20:51:42

标签: sql-server

你应该索引多个到多个表,比如user_role,它有2个字段(userId和RoleId)?

什么样的指数最好?

3 个答案:

答案 0 :(得分:2)

这取决于。如果有很多用户/角色组合(数万或更多),并且您正在查询这些信息,或者需要它特别有效,那么是的。

如果没有很多记录,或者你不关心它是否非常有效,或者不经常使用它,那么很可能没有。

对于使用部分,SQL Server可以帮助您确定是否足够使用它来保证索引。有关指导,请参阅here

另外,正如Martin指出的那样,如果您已将用户/角色定义为此表的主键,那么您已经拥有了该列组合的索引(聚簇索引)。

答案 1 :(得分:0)

索引将有助于更快地查询表,它实际上与关系本身无关。你的查询速度慢吗?如果是这样,那么添加索引将有助于此。它会为insert和update语句增加一些开销。

答案 2 :(得分:0)

通常,如果您加入某个字段,最好在其上加上索引。

您的里程可能会因桌子大小,字段的选择性(即它有多少不同的值)以及您选择/搜索的更新/插入比率而有所不同。