Optimizar la estructura de la tabla MySQL con millones de registros

Bien, soy nuevo en MySQL y SQL en general. Uso sql en mis bases de datos de acceso y páginas web aspx, pero no creo que sea muy eficiente. A continuación se muestra mi tabla Mysql actual y mi resultado final. Actualmente siento que estoy haciendo demasiado para obtener 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 recopilando esta información y cuento 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. Luego ejecuto dos consultas de acceso para obtener mi recuento y exportar a Excel para crear el informe a continuación.

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

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

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

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

Según las recomendaciones, agregué un índice que se muestra a continuación y ejecuté la siguiente consulta para obtener los datos que necesitaba. ¿Agregué el índice correctamente? ¿Qué pasa con una clave primaria? ¿acabo de agregar uno generado automáticamente?

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

Respuestas a la pregunta(0)

Su respuesta a la pregunta