Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Perbedaan antara INT dan UUID di MySQL

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:

  1. Ke UUID atau tidak ke UUID ?
  2. Mitos, GUID vs Autoincrement
  3. Kinerja:UUID vs auto-increment di cakephp-mysql
  4. UUID kinerja di MySQL?
  5. Kunci Utama:ID s versus GUID 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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL localhost / 127.0.0.1 masalah

  2. kesalahan mysql:melebihi koneksi maks per jam

  3. Bagaimana saya bisa menghilangkan komentar ini di dump MySQL?

  4. Apa perbedaan antara cachePrepStmts dan useServerPrepStmts di MySQL JDBC Driver

  5. Cara Membuat Penggunaan Fungsi Komentar Terbaik di MySQL