MySQL puede usar un índice para una DONDE ... en la consulta?
-
16-10-2019 - |
Pregunta
Actualmente tiene una consulta en nuestra aplicación como esta:
SELECT * FROM combos WHERE text = '[text]'
Estamos poniendo una columna category_id
en combos
, y la consulta a cambiar a lo siguiente:
SELECT * FROM combos WHERE category_id in ([c1],[c2],[...]) AND text = '[text]'
En estos momentos, hay un índice en combos(text)
. Estamos pensando en quitarlo y poner uno en combos(category_id, text)
. MySQL será capaz de utilizar el nuevo índice, como lo hizo el viejo? Si la respuesta es 'depende', ¿qué depende? ¿Hay que mantener la anterior en caso de que no se puede?
Solución
a veces ...., siempre y cuando no hay ninguna condición rango:
http://dev.mysql.com/ doc / RefMan / 5.5 / es / index-merge-optimization.html
que podría ser mejor con (text, category_id)
- dependiendo de la distribución de datos
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow