Postgresql のようにコロム インデックス untuk を作成する


スペシフィカシ ペルコバーン:
  • セントス 7
  • PostgreSQL 12

  • ペルソアラン:
    pencarian ke sebuah kolom (contoh: nama) memerlukan waktu yang cukup lama meskipun sudah dibuat index untuk kolom tersebut をクエリします.
    Contoh cuplikan クエリ:

    EXPLAIN ANALYZE SELECT nama from tabela where nama ilike '%abcdefg%';
    ...
    Planning Time: 0.300 ms
    Execution Time: 261.213 ms
    


    ペニエバブ:
    インデックス btree tidak bekerja untuk pencarian menggunakan like atau ilike (部分一致).インデックス btree bekerja ketika menggunakan pencarian 完全一致. Contoh: "... where nama ='abcdefg'..."

    ソリューション:
    ソフトウェア contrib sesuai versi postgresql をインストールします

    yum install postgresql12-contrib
    


    拡張 di データベースの作成 yang diinginkan

    create extension pg_trgm;
    


    Buat index di tabela

    CREATE INDEX CONCURRENTLY idx_tabela1 ON tabela USING gin (nama gin_trgm_ops);
    


    分析クエリを説明する

    EXPLAIN ANALYZE SELECT nama from tabela where nama ilike '%abcdefg%';
    ...
    Planning Time: 0.588 ms
    Execution Time: 1.004 ms
    


    私はあなたがペンカリアンのセペルティ・セベルムニャ・ジャウ・レビー・セパットを手に入れました.セレサイ!

    レファレンジ
    https://niallburkley.com/blog/index-columns-for-like-in-postgres/