我有 2 张桌子:products and 类别。每个类别有很多产品,一个产品可以属于多个类别。
products
product_id - int primary auto increment
name - unique
etc.
类别
category_id - int primary auto increment
name - unique
etc.
我有第三个表用于许多Tomany 关系。
产品类别
product_id -> foreign key: products.product_id
category_id -> foreign key: category.category_id
我的问题是:我应该为product_id
and category_id
in 产品类别为了更快的选择查询,如果是,什么索引?
Thanks
这取决于哪些查询最频繁。
您最终可能会得到三个索引。
如果你有... WHERE products_categories.product_id = XXX
,创建索引product_id
.
同样适用于category_id
在两者上创建索引category_id
and product_id
如果你有... WHERE products_categories.category_id = XXX AND products_categories.product_id = YYY
然而,遵循MySQL手册 http://dev.mysql.com/doc/refman/5.0/en/multiple-column-indexes.html,请记住,索引(category_id, product_id)
索引可能是多余的(category_id)
。另外,还有一个索引(product_id, category_id)
索引可能是多余的(product_id)
。因此,您最终可能会得到两个索引(而不是三个)来满足您所有频繁的查询需求。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)