UUID
mengembalikan pengidentifikasi unik universal
(semoga juga unik jika diimpor ke DB lain juga).
Mengutip dari MySQL doc (penekanan milik saya):
Di sisi lain cukup INT
kunci id utama (mis. AUTO_INCREMENT ) akan mengembalikan bilangan bulat unik untuk tabel DB dan DB tertentu, tetapi yang tidak unik secara universal (jadi jika diimpor ke DB lain kemungkinan akan terjadi konflik kunci utama).
Dalam hal kinerja, seharusnya tidak ada perbedaan mencolok menggunakan auto-increment
melalui UUID
. Sebagian besar posting (termasuk beberapa oleh penulis situs ini), menyatakan seperti itu. Tentu saja UUID
mungkin memerlukan sedikit lebih banyak waktu (dan ruang), tetapi ini bukan hambatan kinerja untuk sebagian besar (jika tidak semua) kasus. Memiliki kolom sebagai Primary Key
harus membuat kedua pilihan sama dengan kinerja. Lihat referensi di bawah ini:
- Ke
UUID
atau tidak keUUID
? - Mitos,
GUID
vsAutoincrement
- Kinerja:
UUID
vsauto-increment
di cakephp-mysql UUID
kinerja di MySQL?- Kunci Utama:
ID
s versusGUID
s (mengkode horor)
(UUID
vs auto-increment
hasil kinerja, diadaptasi dari Mitos, GUID
vs Autoincrement
)
UUID
pro / kontra (diadaptasi dari Kunci Utama:ID
s versus GUID
s
)
Catatan
Saya akan membaca dengan seksama referensi yang disebutkan dan memutuskan apakah akan menggunakan UUID
atau tidak tergantung pada kasus penggunaan saya. Karena itu, dalam banyak kasus UUID
s memang lebih disukai. Misalnya seseorang dapat menghasilkan UUID
s tanpa menggunakan/mengakses database sama sekali, atau bahkan menggunakan UUID
s yang telah dihitung sebelumnya dan/atau disimpan di tempat lain. Selain itu, Anda dapat dengan mudah menggeneralisasi/memperbarui skema database dan/atau skema pengelompokan tanpa harus khawatir tentang ID
melanggar dan menyebabkan konflik.
Dalam hal kemungkinan tabrakan, misalnya menggunakan v4 UUIDS (acak), probabilitas untuk menemukan duplikat dalam 103 triliun UUID versi-4 adalah satu dari satu miliar.