Em primeiro lugar, está completamente bem ter essas lacunas. Não há não há problema . É apenas o seu TOC que o força a pensar que esses números precisam seguir um padrão - eles NÃO.
auto_incrementnão é um recurso PHP, é um recurso MySQLauto_incrementgarante que cada linha tenha um único número. Não lida com números sequenciaisauto_incrementfunciona com segurança em ambiente simultâneo - isso significa que há muitos usuários se conectando ao MySQL e fazendo coisas, e todos eles precisam lidar com o banco de dados e não obter o mesmo id para identificar uma linha. Isso é feito através de um processo bastante complexo e esta é uma das razões pelas quaisauto_incrementproduz lacunasauto_incrementé usado peloInnoDBpara organização física de registros em disco - usa o recurso deauto_incremente esse está produzindo um número maior que o anterior (é isso que ele faz, maior que o anterior, não sequencial). Usando isso, uma b-tree é construída e os registros são gravados em sequência no disco rígido. Violação deauto_incrementfazInnoDBreequilibrar a árvore. Isso significa que ele passa pelos registros e recria o índice se você mexer nele - isso é algo que você não deseja. Sempre
Quando você pensa sobre isso, o que você consegue com números sequenciais? Nada realmente, exceto que seu cérebro provavelmente dói menos porque há alguma ordem imaginária.
Para números sequenciais, use gatilhos para criá-los.
auto_increment tem um trabalho e apenas um trabalho - para produzir único números.