Záleží na tom, k čemu jej používáte. Nerad odpovídám tak obecně, ale je to tak. Obecně se snažte získat typ dat co nejkonkrétnější. Pokud vaše řetězce nikdy nepřekročí horní limit znaků, použijte VARCHAR
protože to bude o něco efektivnější. Pokud potřebujete více místa, použijte TEXT
. Pokud si nejste jisti, kolik místa váš text zabere, měli byste pravděpodobně zvolit TEXT
; rozdíl ve výkonu není příliš velký a je lepší být připraven na budoucnost, než riskovat, že jej budete muset později měnit, když se změní vaše požadavky. Jen moje dva centy.
V komentářích Pitarou poukazuje na to, že pokud MySQL vytvoří dočasnou tabulku pro váš dotaz (viz toto
), TEXT
sloupce se nebudou ukládat do paměti a budou se muset číst z disku, což je mnohem pomalejší. (Zdroj
, dole na stránce.) To by však pro většinu dotazů nemělo záležet.
Pro případ, že by někoho zajímalo, jak se PostgreSQL srovnává, našel jsem toto srovnání což ukazuje, že CHAR, VARCHAR a TEXT fungují stejně dobře. Pokud tedy používáte Postgres, nezáleží na tom, jaký typ používáte.