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

  • 2ndfloor91

    2ndfloor91

    17 Kasım 2007
  • Bryan Adams

    Bryan Adams

    30 Mart 2006
  • ipsy Makeup Tips

    ipsy Makeup

    19 ŞUBAT 2009