sql >> データベース >  >> RDS >> PostgreSQL

OR-ed条件を含む高度なインデックス作成(pgsql)

    条件によっては、ORを使用して複雑な条件を支援するためにインデックスを使用することが論理的に不可能な場合があります。 式。

    MySQLと同様に、PostgreSQL8.0以前はインデックスに関するドキュメント に記載されています。 :

    PostgreSQL 8.1では、これは変更 されています。 。

    ただし、これで問題が解決しない場合は、UNIONを使用できます。 試したソリューション(これはMySQLユーザーにとって一般的なソリューションであり、テーブルごとに1つのインデックスが引き続き制限されます)。

    UNIONの結果を注文できるはずです クエリを実行しますが、かっこを使用してORDER BYを指定する必要があります UNIONの結果に適用されます 、チェーンの最後のサブクエリだけではありません。

    (SELECT ... )
    UNION
    (SELECT ... )
    UNION
    (SELECT ... )
    ORDER BY columnname;
    

    これがお役に立てば幸いです。私はPostgreSQLオプティマイザーの専門家ではありません。 メーリングリストアーカイブ を検索してみてください。 、またはIRCチャネル で質問する 。



    1. SQLAlchemyと結合、外部キーはありません

    2. Nullを含むMySQLGROUP_CONCAT

    3. Oracle.DataAccessが機能するのにOracle.ManagedDataAccessが機能しないのはなぜですか。

    4. 1つのデータベースにファイルを付与する