Ne s PostgreSQL, z příručky :
Tedy velký sloupec znaků (například TEXT
nebo VARCHAR
bez zadaného limitu velikosti) jsou uloženy mimo data hlavní tabulky. PostgreSQL má tedy vestavěnou optimalizaci „umísti to do samostatné tabulky“. Pokud používáte PostgreSQL, uspořádejte si tabulku rozumně a rozvržení dat ponechte na PostgreSQL.
Nevím, jak MySQL nebo jiné RDBM uspořádají svá data.
Důvodem této optimalizace je to, že databáze bude obvykle uchovávat data pro každý řádek v souvislých blocích na disku, aby se omezilo hledání, když je třeba řádek přečíst nebo aktualizovat. Pokud máte v řádku sloupec TEXT (nebo jiný typ s proměnnou délkou), pak je velikost řádku proměnná, takže přechod z řádku na řádek je třeba více práce. Analogií by byl rozdíl mezi přístupem k něčemu v propojeném seznamu a přístupem k poli; u propojeného seznamu musíte číst tři prvky jeden po druhém, abyste se dostali ke čtvrtému, s polem stačí odsadit 3 * element_size
bajtů od začátku a jste tam v jednom kroku.