Apakah kolom yang bukan indeks, diurutkan pada disk bersama dengan indeks, di MySQL, di MyISAM dan InnoDB?
Pikiran yang salah yang mulai saya tulis:
Saya pikir mungkin tidak, karena mereka tidak diindeks; jika mereka disortir itu berarti mereka adalah indeks.
Ini tidak benar karena setiap kolom indeks diurutkan berdasarkan urutan kontennya sendiri, tetapi saya bertanya tentang urutan setiap baris (atau hanya beberapa kolom) dengan indeks yang sesuai.
Untuk menjelaskan, saya katakan: ini akan berguna untuk membuat rentang pemilihan baris, yang berdiri berdampingan, bersama-sama, dengan indeks mereka, lebih cepat. Misalnya, jika saya ingin select * where id >1000 and id<2000
(mungkin ada kesalahan dalam sintaks MySQL, saya tidak tahu dengan baik), maka, kolom id itu sendiri dapat dibaca dari disk dengan cepat karena mungkin sel-selnya dari 1000 hingga 2000 tetap bersama di disk fisik . Tetapi konten kolom lain yang terkait dengan id 1000 hingga 2000 dapat ditulis pada tempat yang berbeda pada disk fisik. Jika mereka juga diurutkan, mereka akan dibaca lebih cepat. Saya pikir, mungkin MySQL secara otomatis mengurutkan kolom pada disk fisik, untuk kinerja operasi seperti itu.
Apakah mereka diurutkan dalam jenis database lain (PostgreSQL, dll.)?
27 Desember: Saya melihat dari 2 jawaban, bahwa dalam kasus ketika ada indeks / kunci utama berkerumun, baris sederhana itu sendiri tidak diurutkan pada disk fisik (seperti yang saya pikir mungkin / mungkin), dan bahkan indeks berkerumun adalah tidak diurutkan, jika b-tree, saya telah membaca tentang b-tree dan melihat bahwa node-nya, seperti yang saya mengerti, tinggal di tempat acak pada disk.
sumber