En general, los filtros de selección pueden usar índices en user_id
o activity_type_id
o ambos (en cualquier orden).
La operación de pedido podría usar un filtro en created_at
.
Es probable que para esta consulta, un índice compuesto en (user_id, activity_type_id)
daría el mejor resultado, suponiendo que MySQL realmente pueda usarlo. De lo contrario, es probable que sea mejor indexar user_id
que activity_type_id
porque es probable que proporcione una mejor selectividad. Una razón para pensar eso es que habría 4 subsecciones del índice para escanear si usa un índice en activity_type_id
, en comparación con solo una subsección para escanear si usa un índice en user_id
solo.
Es probable que tratar de confiar en un índice para el orden de clasificación signifique un escaneo completo de la tabla, por lo que es menos probable que sea beneficioso. No crearía un índice en created_at
para apoyar esta consulta; puede haber otras consultas en las que sería beneficioso.