sql >> Database teknologi >  >> RDS >> Mysql

er det godt at gemme decimalværdi som varchar i mysql?

Det korte svar er:Nej, det vil skade præstationen.

Det længere svar:VARCHAR-felter har variabel længde, hvilket betyder, at formateringen af ​​databaseblokkene ikke kan tage højde for størrelsen af ​​dataudfyldningen der. Selvfølgelig er der en maksimal længde af feltet, men bortset fra det, har du det værre.

På den anden side vil det koste dig at læse en VARCHAR og derefter fortolke den, så den passer ind i en flydende kommatype. Og det introducerer nye problemmuligheder. Prøv at få alle decimaler, der står for "11,99". Håber du medbringer det rigtige antal decimaler, for i VARCHAR "11.99" !="11.990".

Og så er der indeksering. Normalt var der ingen, der indekserede et decimalfelt, men hvis du gør det, vil et indeks på et VARCHAR-felt kræve mere plads.

Alt i alt er det ikke en god idé at gemme noget i en uspecifik felttype. I DB-strukturen betragtes det normalt som bedste praksis at være så specifik som muligt.



  1. Syntaks for for-loop i SQL Server

  2. Tips til at reducere din SQL Server-kompleksitet

  3. Hvor vigtig er rækkefølgen af ​​kolonner i indekser?

  4. Hvordan nulstiller man den glemte MySQL root-adgangskode?