mysqlは、where…in queryにインデックスを使用できますか?
-
16-10-2019 - |
質問
現在、このようなアプリにクエリがあります。
SELECT * FROM combos WHERE text = '[text]'
私たちはaを置いています 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)
- データ分布に応じて!
所属していません StackOverflow