Tidak dengan PostgreSQL, dari manual :
Jadi kolom karakter besar (seperti TEXT
atau VARCHAR
tanpa batas ukuran yang ditentukan) disimpan jauh dari data tabel utama. Jadi, PostgreSQL memiliki pengoptimalan "meletakkannya di tabel terpisah" di dalamnya. Jika Anda menggunakan PostgreSQL, atur tabel Anda dengan bijaksana dan serahkan tata letak data ke PostgreSQL.
Saya tidak tahu bagaimana MySQL atau RDBM lain mengatur datanya.
Alasan di balik optimasi ini adalah bahwa database biasanya akan menyimpan data untuk setiap baris dalam blok yang berdekatan pada disk untuk mengurangi pencarian ketika baris perlu dibaca atau diperbarui. Jika Anda memiliki kolom TEXT (atau jenis panjang variabel lainnya) dalam satu baris, maka ukuran barisnya bervariasi sehingga diperlukan lebih banyak pekerjaan untuk berpindah dari baris ke baris. Analoginya adalah perbedaan antara mengakses sesuatu dalam daftar tertaut versus mengakses larik; dengan daftar tertaut, Anda harus membaca tiga elemen satu per satu untuk mendapatkan yang keempat, dengan array yang baru saja Anda offset 3 * element_size
byte dari awal dan Anda sudah siap dalam satu langkah.