MYSQL可以使用WHERE ... IN查询的索引吗?

时间:2011-01-21 10:52:36

标签: mysql indexing database-indexes

我们目前在我们的应用中有一个查询:

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是否可以像使用旧索引一样使用新索引?如果答案是'它取决于',它依赖于什么?我们应该保留旧的以防万一吗?

1 个答案:

答案 0 :(得分:1)

有时....只要没有范围条件:

http://dev.mysql.com/doc/refman/5.5/en/index-merge-optimization.html

您可能会更好地使用(text, category_id) - 取决于您的数据分发!