【问题标题】:Can MYSQL use an index for a WHERE ... IN query?MYSQL 可以为 WHERE ... IN 查询使用索引吗?
【发布时间】:2011-01-21 10:52:36
【问题描述】:

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

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

【问题讨论】:

    标签: mysql indexing database-indexes


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-26
      • 2018-12-28
      • 2015-09-17
      • 1970-01-01
      • 2012-12-07
      • 1970-01-01
      相关资源
      最近更新 更多