SORU
30 EKİM 2010, CUMARTESİ


Dizin dizi sütun PostgreSQL?

Belgelerinde bu soruya kesin bir cevap bulamıyorum. Eğer bir sütun bir dizi türünü ise, girilen bütün değerleri tek tek endeksli olacak?

int[] bir sütun ile basit bir tablo oluşturdum ve üzerinde benzersiz bir dizin koyun. Bana dizini dizi öğeleri, her maddenin bir dizin değil bileşik olduğunu inandırır in aynı dizi Ekle edemeyeceğimi fark ettim.

INSERT INTO "Test"."Test" VALUES ('{10, 15, 20}');
INSERT INTO "Test"."Test" VALUES ('{10, 20, 30}');

SELECT * FROM "Test"."Test" WHERE 20 = ANY ("Column1");

Bu sorgu için Yardım dizini.

CEVAP
30 EKİM 2010, CUMARTESİ


Evet bir dizi dizini, ama ben array operators GIN-index type kullanmak zorunda.

Örnek:

    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];

Sonuç:

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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ampisound

    Ampisound

    12 Kasım 2006
  • KittiesMama

    KittiesMama

    10 AĞUSTOS 2008
  • Official Clouds

    Official Clo

    1 HAZİRAN 2011