Не с PostgreSQL, от ръководството :
Така че колона с големи знаци (като TEXT
или VARCHAR
без определено ограничение за размер) се съхранява далеч от данните на основната таблица. И така, PostgreSQL има вградена оптимизация за „поставете го в отделна таблица“. Ако използвате PostgreSQL, подредете таблицата си разумно и оставете оформлението на данните на PostgreSQL.
Не знам как MySQL или други RDBM подреждат данните си.
Причината за тази оптимизация е, че базата данни обикновено съхранява данните за всеки ред в последователни блокове на диска, за да намали търсенето, когато редът трябва да бъде прочетен или актуализиран. Ако имате колона ТЕКСТ (или друг тип с променлива дължина) в ред, тогава размерът на реда е променлив, така че е необходима повече работа, за да преминете от ред на ред. Аналогия би била разликата между достъпа до нещо в свързан списък спрямо достъпа до масив; с свързан списък, трябва да четете три елемента един по един, за да стигнете до четвъртия, с масив просто компенсирате 3 * element_size
байтове от началото и сте там на една стъпка.