Not with PostgreSQL manual :
Very long values ββare also stored in background tables, so they do not interfere with quick access to shorter column values.
Thus, a column of large characters (for example, TEXT or VARCHAR without size limit) is stored away from the data of the main table. Thus, PostgreSQL has a built-in optimization "placing it in a separate table." If you are using PostgreSQL, arrange your table and leave the PostgreSQL data layout.
I do not know how MySQL or other RDBMs organize their data.
The reason for this optimization is that the database usually saves data for each row in adjacent blocks on disk to shorten the search when a row needs to be read or updated. If you have a TEXT column (or another variable length) in the row, then the row size is variable, so more work is required to move from row to row. An analogue would be the difference between accessing something in a linked list and accessing an array; with a linked list, you have to read three elements one at a time to go to the fourth, with an array that you just shift 3 * element_size bytes from the beginning, and you are at one step.
mu is too short
source share