L'année 2020 d'un rapporteur

Intermédiaire · indexing, sargable, range

Étant donnée une table bugs(id, token, title, category, device, reported_at, created_at, updated_at)

d'environ 10 millions de lignes, comptez combien de bugs le rapporteur avec token = 'token777'

a signalés en 2020. Renvoyez la colonne (count).

Colonnes attendues

count

Indices

Indice 1 : atteindre le token

SHOW INDEX FROM bugs : l'index composite commence par category, puis token, puis reported_at. Comme dans « Trouvez le titre », l'index n'est utilisable qu'une fois sa colonne la plus à gauche fixée.

Indice 2 : laissez la colonne nue

YEAR(reported_at) = 2020 est correct, mais MySQL ne peut pas chercher dans l'index le résultat d'une fonction. Il lit toutes les lignes du token et calcule YEAR() sur chacune. Comment écrire « en 2020 » comme un intervalle sur reported_at elle-même ?