Autor Zpráva
mikulas12
Profil
Ahoj, tady v tom článku programujte.com/clanek/2007052903-prehled-datovych-typu-v-mysql se píše že

VARCHAR [(M)]
Použití: řetězec pevně dané délky dlouhý 0 až M (M musí být celé číslo v rozmezí od 0 do 255).

Ale já mám doma knížku kde je napsáno že do CHAR můžu ukládat 255 znaků a do VARCHAR až 65 535 znaků (s tim že mysql má limit řádku 6553,5 bajtů). Jak to teda je?
Keeehi
Profil
Ten článek je už 11 let starý a mezi tím proběhl nějaký vývoj. Limit 255 platil pro MySQL až do verze 5.0.2. Verze 5.0.3 a novější mají limit teoreticky až 65 535 bajtů.
juriad
Profil
Ano je to maximálně 65535 bytů ale může to být i méně: v tabulce nemůžeš mít například dva sloupce o velikosti 50000.
Pozor také na to, že byte != znak. Ona to ve výsledku může být jen čtvrtina (utf8mb4)

Viz první komentář: programujte.com/clanek/2007052903-prehled-datovych-typu-v-mysql/nazory/#nove-nazory
Případně oficiálně: dev.mysql.com/doc/refman/5.7/en/char.html
M4n
Profil *
Těch 65535 bytů není limit jen VARCHARu, ale celého řádku.
Obecně je třeba myslet na to, že VARCHAR (a samozřejmě CHAR) je právě uložený přímo v tabulce. Na velké nebo často se měnící texty je vhodnější TEXT, který má v tabulce jen ukazatel a změny tak nezpůsobují její zbytečnou fragmentaci.
mikulas12
Profil
ok, díky...


juriad:
byte != znak. Ona to ve výsledku může být jen čtvrtina (utf8mb
mám utfmb4, takže třebas smajlík má více než klasická písmena? a když tam mám omezení délka 200 tak se to počítá jako 200 znaků?
mikulas12
Profil
myslíte že je tinytext dostatečný pro obsah komenáře?
Keeehi
Profil
mikulas12:
To záleží na tvém uvážení. Na tomto fóru by to bylo rozhodně málo, na Twitteru by to téměř stačilo.
mikulas12
Profil
aha

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: