Tengo una tabla con un UNIQUEíndice de varias columnas en _job_id__y __keyword_id__.
¿También necesitaría agregar otro índice __job_id__si tengo una consulta frecuente que realiza una GROUP BYen esa columna?
(en 100 millones de filas podría tomar un tiempo. Es por eso que pregunto en lugar de hacerlo)

Respuestas:
No, en absoluto !!! MySQL Query Optimizer hará lo correcto si las columnas principales necesarias se encuentran más a la izquierda en el índice. Si creó dicho índice, MySQL Query Optimizer puede optar por nunca usar ese índice si siempre realiza GROUP BY job_id, keyword_id. MySQL Query Optimizer puede o no usar el índice si reúne registros solo por job_id, pero de todos modos tiene un espacio de pérdida de índice redundante.
Si la tabla es MyISAM, hacer un índice de este tipo simplemente hincharía el archivo MYI.
Si la tabla es InnoDB y innodb_file_per_table es 0, hacer un índice de este tipo simplemente aumentaría ibdata1.
Si la tabla es InnoDB y innodb_file_per_table es 1, hacer un índice de este tipo simplemente hincharía el archivo .ibd de la tabla.
En resumen, no necesita hacer ese índice adicional !!!
fuente
Los índices solo pueden acelerar las
group byoperaciones al reducir la clasificación ; esto será más eficiente si el índice utilizado es el índice agrupado o al menos tiene la misma columna inicial que el índice agrupado. En todo esto, supongo que MySQL no tiene el equivalente de unahash group byoperación que generalmente omitiría cualquier beneficio de los índices, tal vez alguien más pueda confirmar esto.Hay un beneficio marginal de tener un índice separado
job_idsuponiendo que es la única columna en lagroup bycláusula y tampoco lo es el índice agrupado: el índice será más pequeño y, por lo tanto, el escaneo generará menos E / S--EDITAR--
Como un índice contiene todos los campos de clave primaria definidos para la clave de índice agrupado que no están en el índice secundario , un índice
job_idactivado solo será menor que un índice activadojob_id, keyword_idsikeyword_idno es parte del índice agrupado.fuente