Du får dette interval med bigint:
-2^63 to 2^63-1
also known as roughly:
-9.2 x 10^18 to 9.2 x 10^18
Du får dette interval med decimal(18,0) :
-10^18 to 10^18
Decimal:Lagerbytes pr. præcision
Precision Storage Bytes
1-9: 5
10-19: 9
20-28: 13
29-38: 17
Heltalstyper og lagerbytes
integer type Storage Bytes
bigint 8
int 4
smallint 2
tinyint 1
Tanker
De to eksempler, der er postet i dit spørgsmål, giver faktisk stort set den samme mængde unikke værdier.
Du vil heller ikke se en væsentlig præstationsændring uanset dit valg, men du vil se en ændring i effektiviteten for andre programmører på holdet, hvis du begynder at bruge decimaler, hvor programmører forventer et heltal. Dette er et mindre punkt.
For at løse dit specifikke problem, hvis du ønsker et større område, skal du bruge Decimal(38,0). Dette giver dig:
-10^38 to 10^38
Hvis du er bekymret for hastigheden, så brug den mindste præcision, der holder hele din softwares levetid.
Hvis du ikke måler tid i nano-sekunder, så vælg den mulighed, der passer bedst til dine programmørers tankegang og dit ønske om at have et meget langt sæt tal.
Referencer