Frage

Wir haben derzeit eine Abfrage in unserer App wie folgt:

SELECT * FROM combos WHERE text = '[text]'

Wir setzen eine category_id Säule auf combos, und die Abfrage wird sich zu diesem ändern:

SELECT * FROM combos WHERE category_id in ([c1],[c2],[...]) AND text = '[text]'

Im Moment gibt es einen Index auf combos(text). Wir denken darüber nach, es zu entfernen und einen anzuziehen combos(category_id, text). Wird MySQL den neuen Index so verwenden können, als hätte er den alten getan? Wenn die Antwort "Es hängt davon ab" ab, worauf hängt sie dann ab? Sollten wir den alten behalten, falls es nicht kann?

War es hilfreich?

Lösung

Manchmal .... solange es keine Reichweite gibt:

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

Sie könnten besser sein mit (text, category_id) - Abhängig von Ihrer Datenverteilung!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top