Jawaban Daniel berfokus pada biaya membaca setiap baris. Dalam konteks ini: Menempatkan NOT NULL
kolom ukuran tetap terlebih dahulu di tabel Anda sedikit membantu. Menempatkan kolom yang relevan terlebih dahulu (yang Anda cari) sedikit membantu. Meminimalkan bantalan (karena penyelarasan data) dengan memainkan tetris penjajaran dengan kolom Anda dapat sedikit membantu. Tetapi efek yang paling penting belum disebutkan, terutama untuk tabel besar.
Kolom tambahan jelas membuat baris menutupi lebih banyak ruang disk, sehingga baris yang lebih sedikit muat pada satu halaman data (8 kB secara default). Baris individual tersebar di lebih banyak halaman. Mesin basis data umumnya harus mengambil seluruh halaman, bukan baris individual . Tidak masalah apakah baris individu agak lebih kecil atau lebih besar - selama jumlah halaman yang sama harus dibaca.
Jika kueri mengambil sebagian kecil tabel besar, di mana baris tersebar kurang lebih secara acak di seluruh tabel, didukung oleh indeks, ini akan menghasilkan jumlah halaman yang dibaca kurang lebih sama, dengan sedikit perhatian ke ukuran baris. Kolom yang tidak relevan tidak akan banyak memperlambat Anda dalam kasus (jarang) seperti itu.
Biasanya, Anda akan mengambil tambalan atau kelompok baris yang telah dimasukkan secara berurutan atau kedekatan dan berbagi halaman data. Baris-baris itu tersebar karena kekacauan, lebih banyak halaman disk harus dibaca untuk memenuhi permintaan Anda. Harus membaca lebih banyak halaman biasanya merupakan alasan paling penting agar permintaan menjadi lebih lambat. Dan itu adalah faktor paling penting mengapa kolom yang tidak relevan membuat permintaan Anda lebih lambat.
Dengan basis data besar, biasanya tidak ada cukup RAM untuk menyimpan semuanya dalam memori cache. Baris yang lebih besar menempati lebih banyak cache, lebih banyak pertikaian, hit cache lebih sedikit, lebih banyak I / O disk. Dan membaca disk biasanya jauh lebih mahal. Kurang begitu dengan SSD, tetapi perbedaan besar tetap. Ini menambah poin di atas tentang membaca halaman.
Ini mungkin atau mungkin tidak masalah jika kolom tidak relevan yang TOAST-ed. Kolom yang relevan mungkin juga TOAST-ed, membawa kembali banyak efek yang sama.