El primer bug borrado
Núcleo · primary-key, anti-join, limit
Dada una tabla bugs(id, token, title, category, device, reported_at, created_at, updated_at)
con unos 10 millones de filas, algunos bugs se borraron y dejaron huecos en la secuencia de ids.
Encuentra el menor id mayor que 5.000.000 que no tiene ningún bug. Devuelve la columna (missing_id).
Columnas esperadas
missing_id
Pistas
Pista 1: cómo es un hueco
Un id x falta justo después de un bug b cuando ningún bug tiene id = b.id + 1. Comprobarlo es una sola búsqueda por clave primaria, por ejemplo LEFT JOIN bugs n ON n.id = b.id + 1 ... WHERE n.id IS NULL.
Pista 2: detente en el primero
Recorre los bugs desde el id 5.000.000 hacia arriba en el orden de la clave primaria y detente en el primero cuyo id siguiente falte: ORDER BY b.id LIMIT 1. MIN() devuelve el mismo número pero antes tiene que mirar todos los candidatos.