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

  • Blendtec

    Blendtec

    30 EKİM 2006
  • Kayla Caton - Peet

    Kayla Caton

    23 HAZİRAN 2012
  • MysteryGuitarMan

    MysteryGuita

    16 HAZİRAN 2006