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

PostgreSQLhstoreでワイルドカードを使用して値をクエリする方法

    hstoreからキーで値を抽出できます ->> オペレーター

    SELECT data->'Supplier' AS sup
    FROM products
    WHERE lower(data->'Supplier') LIKE '%tosh%';
    

    さらに、PostgreSQLのほとんどの式と同様です( random()などを除く )、この値にインデックスを付けることができます:

    CREATE INDEX products_supplier_key ON products ((data->'Supplier'));
    CREATE INDEX products_supplier_lowercase_key ON products ((lower(data->'Supplier')));
    

    これにより、PostgreSQLは、各行をフェッチして hstore をスキャンする代わりに、インデックスを使用してこのような多くのクエリに応答できるようになります。 桁。 インデックスタイプ に関する注記を参照してください。 LIKEでのインデックスの使用について。



    1. 同じクエリ - 異なる実行プラン

    2. テーブル式の基礎、パート4 –派生テーブル、最適化の考慮事項、続き

    3. 左結合、合計、およびカウントグループ

    4. ビッグデータアプリケーション、SQLまたはNoSQLにとって何が良いですか?