Za prvé, je to úplně v pohodě mít tyto mezery. Není žádný problém . Je to jen vaše OCD, která vás nutí myslet si, že tato čísla musí následovat určitý vzorec – NESMÍ.
auto_increment
není funkce PHP, je to funkce MySQLauto_increment
zajišťuje, že každý řádek získá jedinečný číslo. Nezabývá se sekvenčními číslyauto_increment
funguje bezpečně v souběžném prostředí - to znamená, že se k MySQL připojuje mnoho uživatelů a dělají věci a všichni musí být schopni pracovat s databází a nezískat stejné ID pro identifikaci řádku. To se provádí poměrně složitým procesem a to je jeden z důvodů, pročauto_increment
výnosové mezeryauto_increment
je používánInnoDB
pro fyzickou organizaci záznamů na disku - využívá funkciauto_increment
a ten produkuje číslo, které je větší než předchozí (to je to, co dělá, větší než předchozí, ne sekvenční). Pomocí toho je zkonstruován b-strom a záznamy jsou postupně zapisovány na pevný disk. Manipulace sauto_increment
vytváříInnoDB
znovu vyvážit strom. Znamená to, že prochází záznamy a znovu vytváří index, pokud si s tím něco uděláte – to je něco, co nechcete. někdy
Když se nad tím zamyslíte, co vůbec získáte s pořadovými čísly? Vlastně nic, kromě toho, že vás mozek pravděpodobně bolí méně, protože existuje nějaký imaginární řád.
Pro sekvenční čísla použijte k jejich vytvoření spouštěče. auto_increment
má jednu zakázku a pouze jednu zakázku – vyrábět jedinečné čísla.