Autor Zpráva
H13
Profil
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
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
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
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
Díky moc.
Joker
Profil
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0