Anda mendapatkan rentang ini dengan bigint:
-2^63 to 2^63-1
also known as roughly:
-9.2 x 10^18 to 9.2 x 10^18
Anda mendapatkan rentang ini dengan desimal(18,0) :
-10^18 to 10^18
Desimal:Byte Penyimpanan per Presisi
Precision Storage Bytes
1-9: 5
10-19: 9
20-28: 13
29-38: 17
Jenis Bilangan Bulat dan Byte Penyimpanan
integer type Storage Bytes
bigint 8
int 4
smallint 2
tinyint 1
Pemikiran
Dua contoh yang diposting di Pertanyaan Anda sebenarnya menghasilkan jumlah nilai unik yang hampir sama.
Selain itu, Anda tidak akan melihat perubahan kinerja yang signifikan apa pun pilihan Anda, tetapi Anda akan melihat perubahan efisiensi untuk pemrogram lain di tim jika Anda mulai menggunakan desimal di mana pemrogram mengharapkan bilangan bulat. Ini adalah poin kecil.
Untuk mengatasi masalah spesifik Anda, jika Anda menginginkan rentang yang lebih besar, gunakan Desimal(38,0). Ini memberi Anda:
-10^38 to 10^38
Jika Anda mengkhawatirkan kecepatan, gunakan presisi minimum yang akan bertahan selama masa pakai perangkat lunak Anda.
Jika Anda tidak mengukur waktu dalam nano-detik, pilih opsi yang paling sesuai dengan pola pikir programmer dan keinginan Anda untuk memiliki rangkaian angka yang sangat panjang.
Referensi