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

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是否能够像旧索引一样使用新索引?如果答案是“取决于”,那么它取决于什么?如果不能,我们应该保留旧的吗?

有帮助吗?

解决方案

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top