Autor | Zpráva | ||
---|---|---|---|
H13 Profil |
#1 · Zasláno: 12. 10. 2009, 12:07:38
Ahoj, co myslíte, jakým způsobem ukládat údaje o velikosti souboru do databáze. S údaji se může pracovat tak, že se např. bude z databáze získávat suma (SUM) velikostí všech nebo podle různých kritérií vybraných souborů.
Ukládat byty v INT (kde budou velká čísla, např. 2 541 547) nebo použít typ s desetinou čárkou a převádět číslo na KB nebo MB (např. 2.5) Zajímá mě, jesli je zde vyznamný rozdíl v rychlosti (paměťové náročnosti) např. při získávání SUM u INT (s velkými čísli) nebo např. u FLOAT (2 desetinná místa)? Díky |
||
Joker Profil |
#2 · Zasláno: 12. 10. 2009, 12:39:08
H13:
Použil bych číslo v pevné desetinné čárce (tj. INT). Kdyby to mělo být přesné číslo, nevidím důvod, proč místo 2 541 547 mít uložené 2,541547 Jestli to nemusí být přesné, dá se to uložit v pevné čárce s dostatečnou přesností (třeba 2 542 kB) a pak prezentovat klidně i jako 2,5MB |
||
H13 Profil |
#3 · Zasláno: 12. 10. 2009, 12:55:47 · Upravil/a: H13
Joker
Jde mi výkon. To znamená jestli je nějakej zásadní rozdíl mezi INT (velké číslo - 2 541 547) a např. FLOAT (bez nutnosti přesnosti, třeba jen na dvě desetinná místa - 2.50) s ohledem na práci s čísly. Tedy např. SUM, nejvyšší hodnota, průměr, atd. |
||
Aesir Profil |
#4 · Zasláno: 12. 10. 2009, 13:05:26 · Upravil/a: Aesir
H13:
Když to vezmete hodně do hloubky, dá se říct, že práce s INT jsou pro procesor méně náročné na čas, ale to už se bavíme o hodně velkých počtech, aby to bylo znát. Můžete si to ostatně vyzkoušet (velmi, velmi, ale opravdu velmi obrazně): mysql> select benchmark(100000000, 100<100); +-------------------------------+ | benchmark(100000000, 100<100) | +-------------------------------+ | 0 | +-------------------------------+ 1 row in set (1.46 sec) mysql> select benchmark(100000000, 1.00<1.00); +---------------------------------+ | benchmark(100000000, 1.00<1.00) | +---------------------------------+ | 0 | +---------------------------------+ 1 row in set (3.12 sec) |
||
H13 Profil |
#5 · Zasláno: 12. 10. 2009, 13:41:30
Díky moc.
|
||
Joker Profil |
#6 · Zasláno: 12. 10. 2009, 14:34:56
H13:
„Jde mi výkon. To znamená jestli je nějakej zásadní rozdíl mezi INT (...) a např. FLOAT“ Tak obecně výpočty v pevné čárce jsou rychlejší, než v plovoucí. Další věc je, že v plovoucí čárce nemusí být možné uložit přesně to číslo, které bylo zadáno. Tj. čísla v pevné čárce je lepší ukládat v pevné čárce. |
||
Časová prodleva: 15 let
|
0