我们目前在我们的应用中有一个查询:
SELECT * FROM combos WHERE text = '[text]'
我们在category_id
上添加了combos
列,查询将更改为:
SELECT * FROM combos WHERE category_id in ([c1],[c2],[...]) AND text = '[text]'
目前,combos(text)
上有一个索引。我们正在考虑删除它并将其放在combos(category_id, text)
上。 MYSQL是否可以像使用旧索引一样使用新索引?如果答案是'它取决于',它依赖于什么?我们应该保留旧的以防万一吗?
答案 0 :(得分:1)
有时....只要没有范围条件:
http://dev.mysql.com/doc/refman/5.5/en/index-merge-optimization.html
您可能会更好地使用(text, category_id)
- 取决于您的数据分发!