Autor | Zpráva | ||
---|---|---|---|
Hitman Profil |
#1 · Zasláno: 29. 4. 2017, 18:43:30
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 |
#2 · Zasláno: 29. 4. 2017, 19:35:37
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 |
#4 · Zasláno: 30. 4. 2017, 13:03:26
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 |
#5 · Zasláno: 30. 4. 2017, 13:05:09
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. |
||
Časová prodleva: 6 let
|
0