sql >> Databasteknik >  >> RDS >> Mysql

är det bra att lagra decimalvärden som varchar i mysql?

Det korta svaret är:Nej, det kommer att skada prestationen.

Det längre svaret:VARCHAR-fälten har variabel längd, vilket betyder att formateringen av databasblocken inte kan förutse storleken på data som fylls i där. Visst, det finns en maximal längd på fältet, men förutom det har du det sämre.

Å andra sidan kommer det att kosta dig att läsa en VARCHAR och sedan tolka den för att passa in i en flyttalstyp. Och det introducerar nya problemmöjligheter. Försök att få alla decimaler som står för "11,99". Hoppas du tar med rätt antal decimaler, för i VARCHAR "11.99" !="11.990".

Och så är det indexering. Vanligtvis har ingen indexerat ett decimalfält, men om du gör det kommer ett index på ett VARCHAR-fält att kräva mer utrymme.

Sammantaget är det ingen bra idé att spara något i en ospecifik fälttyp. I DB-strukturen anses det vanligtvis vara bästa praxis att vara så specifik som möjligt.



  1. mysqldump på fjärrserver

  2. Hur lagrar jag .txt-filer MySQL-databas?

  3. MySQL främmande nycklar på mig själv

  4. Vilka är skillnaderna mellan utf8_general_ci och utf8_unicode_ci?