El 2020 de un reportero

Núcleo · indexing, sargable, range

Dada una tabla bugs(id, token, title, category, device, reported_at, created_at, updated_at)

con unos 10 millones de filas, cuenta cuántos bugs reportó durante 2020 el reportero con

token = 'token777'. Devuelve la columna (count).

Columnas esperadas

count

Pistas

Pista 1: llega al token

SHOW INDEX FROM bugs: el índice compuesto empieza por category, luego token y luego reported_at. Como en «Encuentra el título», el índice solo se puede usar cuando su columna más a la izquierda está fijada.

Pista 2: deja la columna sola

YEAR(reported_at) = 2020 es correcto, pero MySQL no puede buscar en el índice el resultado de una función. Lee todas las filas del token y calcula YEAR() en cada una. ¿Cómo escribirías «durante 2020» como un rango sobre la propia reported_at?