BY単に問い合わせによって返される行を見つけ出すだけではなく、インデックスは、その行を指定した順番で取り出すことができます。BY指定に従うことが可能です。PostgreSQLが現在サポートするインデックスの種類の中で、B-Treeのみがソート出力を行うことができます。他の種類のインデックスでは指定なし、または、実装固有の順序でマッチした行を返します。BY指定を満足させるために、指定に一致し利用可能なインデックスでスキャンするか、または、テーブルを物理的な順番でスキャンし明示的なソートを行うかを考慮します。テーブルの大部分のスキャンが必要な問い合わせでは、後に発生するシーケンシャルなアクセスパターンのために要求されるディスクI/Oが少ないため、インデックスを使用するよりも、明示的なソートの方が高速です。数行を取り出す必要がある場合のみ、インデックスの方が有用になります。nが組み合わされた場合が、重要かつ特別です。先頭のn行を識別するために、明示的なソートを全データに対して行う必要があります。BYに合うインデックスが存在すれば、残りの部分をスキャンすることなく、先頭のn行の取り出しを直接行うことができます。デフォルトでは、B-Treeインデックスは項目を昇順で格納し、NULLを最後に格納します。LAST)を満たす出力を生成することを意味します。DESCのデフォルトだからです。)を満たす出力を生成します。LASTオプションを組み合わせて指定することにより、B-Treeインデックスの順序を調整することができます。LASTを満たすことができます。BYを網羅できるのではないかと疑問を持つかもしれません。単一列に対するインデックスでは、このオプションは実際冗長ですが、複数列に対するインデックスでは有用になります。y)という2つの列に対するインデックスを仮定します。DESCを満たします。DESCをよく使用しなければならないアプリケーションが存在する可能性があります。簡素なインデックスからこの順序を取り出す方法がありません。ASC)として定義されていれば、取り出すことができます。明確なことですが、デフォルト以外のソート順を持つインデックスはかなり特殊な機能です。特定の問い合わせにおいては恐ろしいほどの速度を向上させることがあります。したインデックスを維持する価値があるかどうかは、特殊なソート順を要求する問い合わせを使用する頻度に依存します。複数のインデックスの組み合わせ。