Autor | Zpráva | ||
---|---|---|---|
hugo123 Profil * |
#1 · Zasláno: 7. 11. 2013, 00:40:41
Ahojte,
viete mi prosim poradit, ako je najlepsie volit dlzku varchar v Mysql? Niekde som pocul, ze najlepsie je volit dlzku 2^n a niekde zase ze 2^n-1, viete mi prosim poradit, co je najlepsie? Vopred dakujem velmi pekne. |
||
Radek9 Profil |
#2 · Zasláno: 7. 11. 2013, 09:51:47
hugo123:
Délku nastav podle toho, kolik znaků tam půjde. Na to není žádné univerzální pravidlo. |
||
Joker Profil |
#3 · Zasláno: 7. 11. 2013, 13:03:07
hugo123:
„ako je najlepsie volit dlzku varchar v Mysql?“ Aby se tam vešla ukládaná data. Napadá mě jediná situace, kdy je nějaký rozdíl v délce VARCHAR: Pokud maximální možná délka řetězce nepřesáhne 255 bajtů, je „režie“ 1 bajt pro každou hodnotu, jinak 2 bajty. Takže v situaci, kdy to zrovna vychází na hranici a je jedno, jestli povolíte o pár znaků víc nebo méně, může být výhodnější volit hodnotu, která se do těch 255 bajtů vejde. Ale pozor na to, že ta hodnota VARCHAR(x) udává počet znaků a ne bajtů, takže v závislosti na kódování to mohou být různá čísla. Konkrétně pokud sloupec má kódování utf8, může jeden znak zabírat až tři bajty, takže do 255 bajtů se pak vejde maximálně VARCHAR(85). |
||
nemeja Profil |
#4 · Zasláno: 7. 11. 2013, 13:27:47
nehledě na to, že varchar má tu výhodu, že zabírá pouze tolik místa, kolik pro danou hodnotu potřebuje. Ne jako char, který zabírá zadanou délku i když to neni potřeba.
|
||
Joker Profil |
#5 · Zasláno: 7. 11. 2013, 14:09:39
nemeja:
„varchar má tu výhodu, že zabírá pouze tolik místa, kolik pro danou hodnotu potřebuje“ Plus ten 1-2 bajty režie. Takže bude-li vždycky nebo skoro vždycky využita plná délka sloupce, je lepší CHAR. Např. na kód jazyka (ISO 639-1) bude lepší CHAR(2) než VARCHAR(2), na MD5 hash CHAR(32) než VARCHAR(32) a podobně. Kromě toho když tabulka bude typu MySQL MyISAM a nebude obsahovat žádný VARCHAR, TEXT ani BLOB, bude to statická tabulka a práce s ní bude rychlejší. |
||
Tori Profil |
#6 · Zasláno: 7. 11. 2013, 14:10:58
nemeja:
Někde jsem četla, že ale na druhou stranu pokud má tabulka všechny sloupce o pevné šířce, tak je trochu rychlejší (asi hlavně vyhledávání n-tého řádku). |
||
Časová prodleva: 10 let
|
0