Le premier bug supprimé

Intermédiaire · primary-key, anti-join, limit

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

d'environ 10 millions de lignes, certains bugs ont été supprimés et ont laissé des trous dans la

suite des ids. Trouvez le plus petit id supérieur à 5 000 000 qu'aucun bug ne porte. Renvoyez la

colonne (missing_id).

Colonnes attendues

missing_id

Indices

Indice 1 : à quoi ressemble un trou

Un id x manque juste après un bug b quand aucun bug n'a id = b.id + 1. Le vérifier est une seule recherche par clé primaire, par exemple LEFT JOIN bugs n ON n.id = b.id + 1 ... WHERE n.id IS NULL.

Indice 2 : arrêtez-vous au premier

Parcourez les bugs à partir de l'id 5 000 000 dans l'ordre de la clé primaire et arrêtez-vous au premier dont l'id suivant manque : ORDER BY b.id LIMIT 1. MIN() renvoie le même nombre mais doit d'abord examiner tous les candidats.