ESC
Developer

Apa itu UUID? Panduan Pembangun tentang Pengecam Unik

Pelajari apa itu UUID, cara versi berbeza berfungsi, bila menggunakannya dan cara menjanakannya dalam JavaScript, Python, PHP dan SQL.

2026-06-25 8 min read Developer
UUID Guide: A Developer's Guide to Unique Identifiers

Apa itu UUID?

UUID (Universally Unique Identifier) ialah pengecam 128-bit yang direka untuk menjadi unik merentasi ruang dan masa — tanpa memerlukan pihak berkuasa pusat. Hasilnya adalah rentetan 36 aksara dalam format:

550e8400-e29b-41d4-a716-446655440000

Ia mengekod 32 digit heksadesimal dalam lima kumpulan yang dipisahkan oleh tanda sempang: 8-4-4-4-12.

Kebarangkalian perlanggaran: Dengan UUID v4, kebarangkalian menghasilkan dua ID yang sama adalah kira-kira 1 dalam 5.3×1036. Dalam amalan, anda tidak akan menghadapi perlanggaran dalam pengeluaran.

Versi UUID Dijelaskan

UUID v1 — Berasaskan masa + alamat MAC

Menggabungkan cap masa dengan alamat MAC antara muka rangkaian. Tersusun secara kronologi tetapi mendedahkan alamat MAC dan cap masa penciptaan tepat — masalah privasi.

UUID v4 — Rawak (paling biasa)

Mengisi 122 bit dengan data rawak yang selamat secara kriptografi. Tiada keadaan, rangkaian atau koordinasi diperlukan. Pilihan lalai untuk kebanyakan kes penggunaan.

UUID v5 — Namespace + SHA-1

Deterministik: namespace + nama yang sama = UUID yang sama setiap kali. Utamakan v5 berbanding v3 (MD5 sudah lapuk).

UUID v7 — Tersusun masa (standard baharu)

Menggunakan cap masa Unix milisaat dalam bit paling signifikan. UUID boleh diisih secara semula jadi dan meningkatkan prestasi indeks B-tree pangkalan data dengan ketara.

Untuk kunci utama pangkalan data: Utamakan UUID v7. Sifat tersusun masa menghalang fragmentasi indeks.

Mengapa Menggunakan UUID?

  • Tiada koordinasi pusat: Mana-mana klien atau perkhidmatan mikro boleh menjana UUID secara bebas.
  • Keselamatan melalui kekaburan: ID integer berurutan mendedahkan isipadu data anda. UUID tidak mendedahkan apa-apa.
  • Penggabungan pangkalan data: Jadual berkunci UUID digabung tanpa konflik.
  • Penjanaan luar talian: Aplikasi mudah alih boleh mencipta rekod luar talian dan menyegerak kemudian.
  • Standard industri: Sokongan terbina dalam setiap pangkalan data dan rangka kerja utama.

Bila TIDAK Menggunakan UUID?

  • Overhead storan: Gunakan BINARY(16) dalam MySQL atau jenis uuid asli dalam PostgreSQL, bukan VARCHAR(36).
  • Slug URL: Terlalu panjang dan tidak mudah diingat. Gunakan slug yang boleh dibaca untuk URL yang menghadap pengguna.
  • Fragmentasi indeks dengan v4: Untuk jadual penulisan tinggi, gunakan UUID v7 atau ULID.
Tip MySQL: Jangan simpan UUID sebagai VARCHAR(36) dalam jadual bervolum tinggi. Gunakan BINARY(16) dengan UUID_TO_BIN(uuid, 1).

Jana UUID dalam Kod

JavaScript

const id = crypto.randomUUID(); // v4

Python

import uuid; id = str(uuid.uuid4())

PHP

use Ramsey\Uuid\Uuid;
$v4 = Uuid::uuid4()->toString();
$v7 = Uuid::uuid7()->toString();

SQL

-- MySQL: SELECT UUID();
-- PostgreSQL: SELECT gen_random_uuid();

Amalan Terbaik

  • Simpan sebagai binari: BINARY(16) atau jenis uuid asli PostgreSQL.
  • Gunakan v4 untuk kebanyakan kes.
  • Gunakan v7 untuk kunci utama pangkalan data.
  • Elakkan v1 dalam konteks sensitif privasi.
  • Sahkan format UUID pada input.
  • Sentiasa gunakan huruf kecil.
Perlu jana UUID sekarang? Penjana UUID kami mencipta UUID v4 dan v7 secara pukal.

Soalan Lazim

Bolehkah dua UUID menjadi sama?

Secara teori ya. Kebarangkalian perlanggaran v4 adalah kira-kira 1 dalam 5.3×1036. Dalam amalan, anda tidak akan menghadapi perlanggaran dalam mana-mana sistem sebenar.

v4 atau v7 untuk kunci utama pangkalan data?

v7 untuk kunci utama. v4 memasukkan di kedudukan rawak dalam indeks B-tree. v7 memastikan sisipan di penghujung indeks.

Adakah UUID sensitif huruf besar/kecil?

Tidak. Spesifikasi tidak sensitif huruf. Mengikut konvensyen, sentiasa gunakan huruf kecil.

Jana UUID Serta-merta

Jana UUID v4 atau v7 secara pukal, salin ke papan keratan dan gunakan dalam projek anda — tiada pelayan, tiada penjejakan, 100% sisi klien.

Buka Penjana UUID