对于mysql,请为非唯一列做索引帮助吗?

时间:2015-12-04 16:48:40

标签: mysql

示例表:

kitchen_option_id (int and primary key)
kitchen_id (int)
kitchen_chair_id (int)

我希望得到所有与厨房相关的椅子33.我可以用索引加快这个吗?即使我不能使kitchen_chair_id独一无二?

1 个答案:

答案 0 :(得分:2)

您可以在kitchen_id上添加非唯一索引。这允许dbms执行所谓的“索引范围”扫描,也就是说dbms对第一个kitchen_id = 33执行直接索引查找,然后,因为索引键已经排序,它可以按顺序读取索引键,直到找到kitchen_id != 33,然后停止。

这比全表扫描多快多少取决于比率(kitchen 33) / (all kitchens),盈亏平衡点高于1/2。