Anda tidak dapat mengandalkan urutan baris dalam kueri apa pun yang tidak memiliki ORDER BY
eksplisit ayat. Jika Anda menanyakan tampilan terurut, tetapi Anda tidak menyertakan ORDER BY
klausa, terkejutlah jika urutannya benar, dan jangan berharap itu terjadi lagi.
Itu karena pengoptimal kueri bebas mengakses baris dengan cara yang berbeda tergantung pada kueri, statistik tabel, jumlah baris, indeks, dan sebagainya. Jika tahu kueri Anda tidak memiliki ORDER BY
klausa, bebas untuk mengabaikan urutan baris agar (batuk) mengembalikan baris lebih cepat.
Sedikit di luar topik . . .
Urutan pengurutan tidak selalu identik di seluruh platform bahkan untuk kumpulan terkenal. Saya mengerti bahwa menyortir UTF-8 di Mac OS X sangat aneh. (Pengembang PostgreSQL menyebutnya rusak .) PostgreSQL bergantung pada strcoll(), yang saya pahami bergantung pada lokal OS.
Tidak jelas bagi saya bagaimana PostgreSQL 9.1 akan menangani ini. Di 9.1, Anda dapat memiliki beberapa indeks, masing-masing dengan susunan yang berbeda . ORDER BY yang tidak menentukan susunan biasanya akan menggunakan susunan kolom tabel dasar yang mendasarinya, tetapi apa yang akan dilakukan pengoptimal dengan indeks yang menentukan susunan yang berbeda dari kolom yang tidak diindeks di tabel dasar?