如何索引单向关系表?

时间:2013-11-19 11:01:59

标签: sql indexing outer-join

我不是数据库人,所以这可能是一个微不足道的问题......

假设
1)我有一个关系表(我认为这就是所谓的),student_class,它包含student_id和class_id,(表示学生表和班级表之间的多对多)
2)我做了导致student_id的各种查询(可能还有其他内容)然后结果是“LEFT OUTER JOIN”编辑到student_class并再次LOJed到类表以获取相关的类信息。
3)我做了很多,但我不在乎找到某个班级的学生,或者你认为在学生和班级背景下常见的任何其他事情。
4)我有成千上万的学生,但只有大约100个班 5a)99%的学生没有参加任何一个班级(这是一所优秀的学校),其余学生只参加了一个班级,只有一个班级 5b)替代5a,平均而言,每个学生都参加了大约2个班级

那么为了这个唯一的目的,我应该在student_class表中创建多少以及下面的哪个索引,并且5a和5b的答案是不同的? 一个。 student_id的索引 湾索引student_id和class_id
C。 class_id上的索引

1 个答案:

答案 0 :(得分:1)

我会为每列创建一个索引。

您的问题中没有一个参数只是向class_id添加索引。您可以根据student_id和class_id选择值,因此我认为同时使用这两个值是合理的。

此外,如果每个班级中有更多学生注册,则您的索引需求不会更改。 对于这两种情况,您都以相同的方式使用索引。

对于您拥有的记录数量,索引将相对较小。