Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apakah lebih baik menggunakan pengenal unik (GUID) atau bigint untuk kolom identitas?

Itu tergantung pada apa yang Anda lakukan:

  • Jika kecepatan adalah perhatian utama maka int yang lama biasa saja mungkin cukup besar.
  • Jika Anda benar-benar akan memiliki lebih dari 2 miliar (dengan B;) ) catatan, gunakan bigint atau panduan berurutan.
  • Jika Anda ingin dapat dengan mudah menyinkronkan dengan catatan yang dibuat dari jarak jauh, maka Guid benar-benar hebat.

Perbarui
Beberapa catatan tambahan (kurang jelas) tentang Panduan:

  • Mereka bisa sulit di indeks, dan itu memotong inti kinerja basis data
  • Anda dapat menggunakan panduan sekuensial untuk mendapatkan kembali sebagian dari kinerja pengindeksan, tetapi hilangkan beberapa keacakan yang digunakan pada poin dua.
  • Panduan mungkin sulit untuk di-debug dengan tangan (where id='xxx-xxx-xxxxx' ), tetapi Anda juga mendapatkannya kembali melalui panduan berurutan (where id='xxx-xxx' + '123' ).
  • Untuk alasan yang sama, Guid dapat membuat serangan keamanan berbasis ID menjadi lebih sulit- tapi bukan tidak mungkin. (Anda tidak bisa hanya mengetik 'http://example.com?userid=xxxx' dan berharap mendapatkan hasil untuk akun orang lain).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah ada perbedaan antara DateTime di c # dan DateTime di SQL server?

  2. Cara mengatur kunci utama saat menautkan dengan CreateTableDef

  3. Cara menghapus karakter tertentu dari string, hanya jika itu adalah karakter pertama atau terakhir dalam string.

  4. kueri sql - dapatkan semua catatan berdasarkan bendera

  5. Jalankan sp_msforeachdb dalam aplikasi Java