我的Rails数据库中有一个has_many, :through
关系,:through
表包含以下重要字段:
Assignment.rb (subset)
company_id
project_id
importance
order
所有这些列都被整个系统中的查询大量使用。根据具体情况,这些查询最多可查找其中4个字段并采用不同的组合。
我有这些索引:
company_id
project_id
我是否需要为我使用的每个特定组合添加新索引,从而导致潜在的大量索引,或者为了获得最佳性能,我可以添加:
company_id, project_id, importance, order
并且系统只会搜索它给出的任何组合?
答案 0 :(得分:0)
假设您正在使用MySQL,如果您在(company_id,project_id,importance,order)上创建索引,则意味着您可以使用该索引来利用该索引:
但是您不能自己索引project_id或重要性或订单。希望这可以帮助您创建索引。如果您有依赖项,则为其创建索引。例如,如果您在涉及重要性时始终搜索订单,请创建(重要性,订单)索引。请记住,索引将在单独使用时被利用,因此如果您有以下索引:(company_id),(project_id),(重要性),(顺序),您可以在通过company_id和project_id搜索时利用它们示例