Optimizar la estructura de la tabla MySQL con millones de loggings

De acuerdo, soy nuevo en MySQL y SQL en general. Uso sql en mis bases de datos de acceso y aspx, pero no creo que sea muy eficiente con eso. Debajo está mi tabla Mysql actual y mi resultado final. Actualmente siento que estoy haciendo demasiado para get los resultados que quiero.

Entonces mi pregunta es ¿cuál es la mejor manera de optimizar esta tabla? La tabla está llena de cientos de dispositivos Android que envían las aplicaciones que han instalado en sus dispositivos. Estoy recostackndo esta información y contando cuántas veces aparecieron para ver cuáles son las más populares.

En este momento he acumulado más de 3 millones de filas y estoy exportando esta tabla e importando para acceder. A continuación, ejecuto dos consultas en el acceso para get mi conteo y exportar a Excel para crear el informe a continuación.

El identificador único es la actividad y el nombre de class combinados con / Así es como determino mis recuentos

Sé que esta pregunta podría considerarse una discusión, pero realmente para responder a la pregunta me gustaría saber la estructura que debería usar en mi tabla base.

Sé que ni siquiera tengo una configuration de índice, pero no estoy seguro de qué campo podría hacerlo.

Si esta pregunta se considera una discusión, la eliminaré de inmediato.

mesa original

Resultado final

En base a las recomendaciones, agregué un índice que se muestra a continuación y ejecuté la siguiente consulta para get los datos que necesitaba. ¿He agregado el índice correctamente? ¿Qué pasa con una key principal? ¿acabo de agregar uno generado automáticamente?

SELECT COUNT( name ) , CONCAT( userapps.activity, '/', userapps.class ) FROM userapps GROUP BY name 

enter image description here