Autor Zpráva
Hitman
Profil
Dobrý podvečer,

existuje někde tabulka s velikostí datových typů pro mysql?

Nebo ideálně kdyby to šlo vyčíst přímo z mysql. Dám třeba char(50) a ukáže mi to kolik zabírá místa...v dokumentaci je třeba konkértně u charu že CHAR(4) = 4B, ale nejsem si jistý jestli char(5) je 5B atd. Je na to někde dobrý zdroj jak to určit?

Podotázka:
Řeším jak ukládat textová data, která jsou ale pouze čísla. Např. IČO atp. pokud by bylo že char(10) = 10B, bylo by výhodnější využít int, který má 4B. Případně i meidumint...

Ale pamatuji si ze školy, že nám učitel z DB říkal že právě pro IČO máme použít char, protože s tou hodnotou nebudeme chtít nijak počítat. Co je na tom pravdy, má použití int v něčem nevýhodu?
Kajman
Profil
Existuje, divím se, že jste ji v manuálu nenašel
dev.mysql.com/doc/refman/5.5/en/storage-requirements.html

Vzhledem k tomu, že s IČ se nedělají početní operace a je možné, že v některých zemích tam nemají jen čísla, je zvážení místo čísla použít char či varchar na místě.
Hitman
Profil
Ano, to je ono, díky. Vzhledem k tomu že se bude jednat pouze o CZ IČ, využiji asi mediumint z hlediska výkonu. Rozdíl 0,6MB je sice na 100tis. asi zanedbatelný, ale třeba se to příznivě projeví v rychlosti prohledávání db.
Alphard
Profil
Počítat takto pár bajtů mi přijde směšné. Když už myslíte na rychlost, myslíte i na indexy? Víte, jak budou sestavené dotazy?
Osobně bych dal IČO jako string.
juriad
Profil
Hitman:
Mediumint ti stačit nebude. České Ič má 8 číslic, kdežto mediumint umí necelých 7. Potřebuješ alespoň int.
Mnohem důležitější je přítomnost indexu než datová velikost.

Stejně jako Kajman bych spíš volil CHAR nebo VARCHAR. Rozdíl v rychlosti bude mizivý, ale pořád budeš mít možnost v budoucnu podporovat cizí státy.

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