PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

क्या PostgreSQL इंडेक्स सरणी कॉलम कर सकता है?

हाँ, आप किसी सरणी को अनुक्रमित कर सकते हैं, लेकिन आपको सरणी संचालकों और GIN-सूचकांक प्रकार का उपयोग करना होगा।

उदाहरण:

    CREATE TABLE "Test"("Column1" int[]);
    INSERT INTO "Test" VALUES ('{10, 15, 20}');
    INSERT INTO "Test" VALUES ('{10, 20, 30}');

    CREATE INDEX idx_test on "Test" USING GIN ("Column1");

    -- To enforce index usage because we have only 2 records for this test... 
    SET enable_seqscan TO off;

    EXPLAIN ANALYZE
    SELECT * FROM "Test" WHERE "Column1" @> ARRAY[20];

परिणाम:

Bitmap Heap Scan on "Test"  (cost=4.26..8.27 rows=1 width=32) (actual time=0.014..0.015 rows=2 loops=1)
  Recheck Cond: ("Column1" @> '{20}'::integer[])
  ->  Bitmap Index Scan on idx_test  (cost=0.00..4.26 rows=1 width=0) (actual time=0.009..0.009 rows=2 loops=1)
        Index Cond: ("Column1" @> '{20}'::integer[])
Total runtime: 0.062 ms
टिप्पणी

ऐसा प्रतीत होता है कि कई मामलों में gin__int_ops विकल्प की आवश्यकता है

GIN ( gin__int_ops) का इस्तेमाल करके पर
create index <index_name> on <table_name> using GIN (<column> gin__int_ops)

मैंने अभी तक ऐसा कोई मामला नहीं देखा है जहां यह &&और @> ऑपरेटर के साथ gin__int_ops विकल्पों के बिना काम करेगा



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL पर संकेत

  2. PostgreSQL 11 के साथ अपना डेटा साझा करना

  3. विंडोज के लिए पोस्टग्रेएसक्यूएल विकसित करना, भाग 2

  4. CSV फ़ाइल में हेडर के साथ CSV फ़ाइल से PostgreSQL तालिका में कैसे कॉपी करें?

  5. रेल ऐप में हेरोकू पोस्टग्रेएसक्यूएल GROUP_BY त्रुटि