# Tok i bruk tidsordnede UUID v7‑identifikatorer (PostgreSQL 18) som entitetsnøkler for å redusere fragmenteringen i B‑tre‑indekser og gjøre spørringene raskere.

2025

**Situasjon.** Hver entitet trenger en unik id, og det refleksmessige valget er en tilfeldig UUID. Problemet er at tilfeldige id‑er havner spredt over hele en B‑tre‑indeks. Innsettingene spres, indeksen fragmenteres, og etter hvert som tabellene vokser, betaler både skriving og intervallskanninger for det. På en plattform som er ment å fortsette å vokse, er det en langsom lekkasje man helst ikke bygger inn.

**Oppgave.** Behold den globale unikheten til en UUID, men bli kvitt fragmenteringen som følger med tilfeldigheten.

**Handling.** Standarden ble UUID v7, som er tidsordnet — de første bitene er et tidsstempel, så nye rader sorteres inn i indeksen i stedet for å bli strødd utover den. PostgreSQL 18 har dette innebygd som uuidv7(), pakket inn i en liten uuid_generate_v7()-funksjon slik at det samme kallet oppfører seg ryddig på Flexible Server i Azure, og deretter gjort til standardverdi for primærnøklene til entitetene i hele skjemaet. Det er ikke noe eksotisk ved det; det er den typen beslutning som er billig hvis man tar den tidlig, og en plage å ettermontere senere.

**Resultat.** Id‑ene forble globalt unike, indeksen sluttet å fragmenteres slik tilfeldige UUID‑er fører til, og tidsordnede innsettinger og intervallspørringer ble raskere — jevnt, på tvers av alle tabeller, uten at noen måtte tenke på det igjen. Som en bonus får hver entitet en nøkkel man kan sortere etter tid, helt gratis.

---

- Rolle: Databaseingeniør
- Kategorier: [Backend‑utvikling](https://engineer.company/nb/categories/backend/), [Databaser](https://engineer.company/nb/categories/databases/), [PostgreSQL](https://engineer.company/nb/categories/postgresql/), [Data engineering](https://engineer.company/nb/categories/data-engineering/), [Ytelsesoptimalisering](https://engineer.company/nb/categories/performance/)
- Tjenester: [Databasedesign og datamodellering](https://engineer.company/nb/services/database-design/), [Optimalisering av databaseytelse](https://engineer.company/nb/services/database-performance/)

<https://engineer.company/nb/portfolio/adopted-uuid-v7-time-ordered-identifiers-postgresql-18-64/>
