明示的なORDER BY
がないクエリでは、行の順序を当てにすることはできません。 句。順序付けされたビューをクエリするが、ORDER BY
を含めない場合 条項、それらが正しい順序になっている場合は嬉しい驚きであり、それが再び起こることを期待しないでください。
これは、クエリオプティマイザが、クエリ、テーブル統計、行数、インデックスなどに応じて、さまざまな方法で行に自由にアクセスできるためです。クエリにORDER BY
がないことがわかっている場合 節では、行をより迅速に返すために(咳)行の順序を無視するのは自由です。
少しトピックから外れています。 。 。
よく知られている照合の場合でも、並べ替え順序はプラットフォーム間で必ずしも同じではありません。 MacOSXでUTF-8をソートするのは特に奇妙だと理解しています。 (PostgreSQL開発者はそれを壊れたと呼んでいます 。)PostgreSQLはstrcoll()に依存していますが、これはOSロケールに依存していると私は理解しています。
PostgreSQL9.1がこれをどのように処理するかは私にはわかりません。 9.1では、それぞれが異なる照合を持つ複数のインデックスを持つことができます 。照合を指定しないORDERBYは通常、基になるベーステーブルの列の照合を使用しますが、オプティマイザーはインデックスで何をしますか ベーステーブルのインデックス付けされていない列とは異なる照合を指定しますか?