sql >> Database >  >> RDS >> Mysql

is het goed om decimale waarde op te slaan als varchar in mysql?

Het korte antwoord is:Nee, het zal de prestaties schaden.

Het langere antwoord:VARCHAR-velden hebben een variabele lengte, wat betekent dat de opmaak van de databaseblokken niet vooraf rekening kan houden met de grootte van de gegevens die daar worden ingevuld. Natuurlijk, er is een maximale lengte van het veld, maar verder ben je er slechter af.

Aan de andere kant kost het u geld om een ​​VARCHAR te lezen en deze vervolgens te interpreteren om in een zwevend-kommatype te passen. En het introduceert nieuwe probleemmogelijkheden. Probeer alle decimalen te krijgen die goed zijn voor "11.99". Ik hoop dat je het juiste aantal decimalen gebruikt, want in VARCHAR "11.99" !="11.990".

En dan is er het indexeren. Gewoonlijk heeft niemand een decimaal veld geïndexeerd, maar als u dat wel doet, heeft een index op een VARCHAR-veld meer ruimte nodig.

Al met al is het geen goed idee om iets op te slaan in een niet-specifiek veldtype. In de DB-structuur wordt het meestal als de beste praktijk beschouwd om zo specifiek mogelijk te zijn.



  1. Transactiebeheer met Django 1.6

  2. Oracle IN vs Bestaat verschil?

  3. Maanden toevoegen aan een datum in SQLite

  4. ORA-00001 unieke beperking geschonden