sql >> Databasteknik >  >> RDS >> Mysql

Lagrar statistiska data, behöver jag DECIMAL, FLOAT eller DOUBLE?

Denna länk gör ett bra jobb med att förklara vad du letar efter. Så här står det:

Alla dessa tre typer kan specificeras med följande parametrar (storlek, d). Där storlek är den totala storleken på strängen och d representerar precision. För att t.ex. lagra ett nummer som 1234.567, ställer du in Datatypen på DUBBEL(7, 3) där 7 är det totala antalet siffror och 3 är antalet siffror som ska följa decimalkomma.

FLYTANDE och DUBBEL, båda representerar flyttal. En FLOAT är för enkelprecision, medan en DUBBEL är för dubbelprecisionsnummer. En precision från 0 till 23 resulterar i en 4-byte enkelprecision FLOAT-kolumn. En precision från 24 till 53 resulterar i en 8-byte dubbelprecision DUBBEL kolumn. FLOAT är exakt till cirka 7 decimaler och DUBBEL upp till 14.

Decimals deklaration och funktion liknar Double. Men det finns en stor skillnad mellan flyttalsvärden och decimala (numeriska) värden. Vi använder DECIMAL datatyp för att lagra exakta numeriska värden, där vi inte vill ha precision utan exakta och korrekta värden. En decimaltyp kan lagra maximalt 65 siffror, med 30 siffror efter decimalkomma.

Så, för det mest exakta och exakta värdet skulle decimal vara det bästa alternativet.



  1. mysqldump bästa praxis:Del 1 – MySQL-förutsättningar

  2. Inverkan av fragmentering på genomförandeplaner

  3. Skillnaden mellan en vanlig ajax och lång röstning

  4. Omfattning av temporära tabeller i SQL Server