sql >> Databasteknik >  >> RDS >> Mysql

MySQL-datatyper för kryptovaluta?

Det finns ett klart bästa alternativ av de tre du föreslog (plus ett från kommentarerna).

STORT — använder bara 8 byte, men den största BIGINT har endast 19 decimalsiffror; om du dividerar med 10 är det största värdet du kan representera 9,22, vilket inte räcker till.

DUBBLA — har endast 15–17 decimalsiffror med precision; har alla kända nackdelar med flyttalsaritmetik.

VARCHAR — kommer att använda 20+ byte om du har att göra med 18 decimaler; kommer att kräva konstanta string↔int-konverteringar; kan inte sorteras; kan inte jämföras; kan inte läggas till i DB; många nackdelar.

DECIMAL(27;18) – om du använder MySQL tar detta 12 byte (4 för varje grupp med 9 siffror ). Detta är en ganska rimlig lagringsstorlek och har tillräckligt med räckvidd för att stödja belopp så stora som en miljard eller så små som en Wei. Det kan sorteras, jämföras, läggas till, subtraheras, etc. i databasen utan förlust av precision.

Jag skulle använda DECIMAL(27,18) (eller DECIMAL(36,18) om du behöver lagra riktigt stora värden) för att lagra kryptovalutapengar.




  1. Java lagrad procedur anropar i java-program

  2. Beställ efter de tre sista tecknen

  3. Fyll specifika kolumner i datagridview från MySQL-data VB.NET

  4. Python, Konvertera 9 tuppel UTC-datum till MySQL datumtidsformat