Ten eerste is het helemaal prima om deze hiaten te hebben. Er is geen probleem . Het is gewoon je OCS die je dwingt te denken dat deze cijfers een patroon moeten volgen - dat doen ze NIET.
auto_increment
is geen PHP-functie, het is een MySQL-functieauto_increment
zorgt ervoor dat elke rij een uniek . krijgt nummer. Het gaat niet over volgnummersauto_increment
werkt veilig in een gelijktijdige omgeving - dat betekent dat er veel gebruikers zijn die verbinding maken met MySQL en dingen doen, en ze moeten allemaal met de database kunnen omgaan en niet hetzelfde ID krijgen voor het identificeren van een rij. Dit wordt gedaan door middel van een nogal complex proces en dit is een van de redenen waaromauto_increment
levert hiaten opauto_increment
wordt gebruikt doorInnoDB
voor fysieke organisatie van records op schijf - het gebruikt de functie vanauto_increment
en die produceert een getal dat groter is dan de vorige (dat is wat hij doet, groter dan de vorige, niet opeenvolgend). Hiermee wordt een b-tree geconstrueerd en worden de records in volgorde op de harde schijf geschreven. Knoeien metauto_increment
maaktInnoDB
de boom opnieuw in evenwicht brengen. Het betekent dat het records doorloopt en de index opnieuw maakt als je ermee knoeit - dat is iets wat je niet wilt. Ooit
Als je erover nadenkt, wat krijg je dan zelfs met opeenvolgende getallen? Niets eigenlijk, behalve dat je hersenen waarschijnlijk minder pijn doen omdat er een denkbeeldige orde is.
Gebruik voor opeenvolgende nummers triggers om ze te maken. auto_increment
heeft één taak en slechts één taak - om uniek te produceren nummers.