sql >> Databasteknik >  >> RDS >> Mysql

mysql, bigint eller decimal för att lagra> 32 bitars värden men mindre än 64 bitar

Enligt min åsikt skulle bigint vara bättre. Det lagras som ett heltal som MySQL kommer att förstå inbyggt utan att någon konvertering krävs, och kommer därför (föreställer jag mig) att vara snabbare på att manipulera. Du bör därför förvänta dig att MySQL är marginellt effektivare om du använder bigint.

Enligt denna manualsida , kommer de första 9 siffrorna i ditt nummer att lagras i ett fyra-byte block och de återstående siffrorna (du behöver upp till 12) kommer att lagras i ett två-byte block. Det betyder att din kolumn tar upp 6 byte per rad, i motsats till 8 byte för bigint. Jag skulle föreslå att om inte a) du kommer att lagra ett riktigt obscent antal rader, så att utrymmet som tas upp är ett allvarligt problem, och b) du kommer att behöva fråga mycket lite om informationen i fråga, bör du gå med bigint.



  1. SQLException :Sträng eller binär data skulle trunkeras

  2. MSSQL-inspelningsdatum/tid raderas automatiskt

  3. Hur man ringer ett pl/sql anonymt block från ett pl/sql anonymt block

  4. Välj det näst högsta lägsta värdet i Oracle