29. oktober 2010 - 12:23Der er
12 kommentarer og 1 løsning
Datatyper: bigint vs. decimal
Hej Eksperter.
Jeg sidder og prøver at optimere mine datatyper i en MySQL-database.
I den forbindelse vil jeg gerne kunne opbevare nogle talkombinationer, som kan indeholde op til 32 tegn.
Bruger jeg datatypen 'bigint', kan jeg kun opbevare op til tallet 18.446.744.073.709.551.615, dvs. 20 tegn. Bruger jeg derimod 'dec' (decimal), kan jeg opbevare op til 65 numeriske tegn, dvs. et langt højere tal en med 'bigint'.
Så mit spørgsmål går på: bør jeg virkelig opbevare mine værdier som 'decimal'-typer, når jeg vil have over 20 tegn? Og kan det betale sig, performance-mæssigt? Jeg kunne selvfølgelig opbevare dem som tekst-strenge, men bør det ikke performe endnu dårligere?
Håber der er nogen derude, der har nogle gode bud. :)
Varchar eller Text felter er mega langsommere end int's / bigint at sortere osv i. Desuden skal du bruge en php funktion til at lave en sum eller average fremfor mysql's egen.
Fordele er at bigint er meget hurtig, decimal er mellem og text er røv langsom.
Eller det er min erfaring ihvertfald.
Dog vil du meget sandsynligvis med en quadcore server eller lignede aldrig kunne mærke forskellen mellem bigint eller decimal. (igen min mening).
The_Buzz>> Ja, tal, altså kun cifre. :) Jeg kom også fra det link, og det var egentlig der, jeg blev i tvivl om, hvad der var mest 'rigtigt' at gøre.
Som Mcb2001 skriver, så er det hovedsageligt krypterede værdier, der behøver denne type. (Og så også bare teoretisk, fordi jeg blev i tvivl, og det er 'nice-to-know'. :) )
Jeg holder lige tråden åben i noget tid endnu for at se, om der er nogle andre tanker omkring emnet.
hvis du virkelig er interesseret, så kan du faktisk kigge på hvordan din computer rent fysisk behandler dine data.
Og hvis du arbejder med heltal, så er det (så vidt jeg husker) sådan at PHP behandler alle tal som decimaltal, og bruger de Processorkald, der udfører floating-point operationer.
Men ja, det giver ikke altid mening for brugeren, men der er af og til en programmeringsmæssig fordel i kun at lave kald til floating-point delene, og så helt undlade at bruge Integer delene.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.