sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL UUID-typ prestanda

Vi hade en tabell med cirka 30 000 rader som (av en specifik icke-relaterad arkitektonisk anledning) hade UUID lagrade i ett textfält och indexerade. Jag märkte att sökfrågan var långsammare än jag hade förväntat mig. Jag skapade en ny UUID-kolumn, kopierade in texten uuid primärnyckel och jämförde nedan. 2,652 ms mot 0,029 ms. Ganska skillnad!

 -- With text index
    QUERY PLAN
    Index Scan using tmptable_pkey on tmptable (cost=0.41..1024.34 rows=1 width=1797) (actual time=0.183..2.632 rows=1 loops=1)
      Index Cond: (primarykey = '755ad490-9a34-4c9f-8027-45fa37632b04'::text)
    Planning time: 0.121 ms
    Execution time: 2.652 ms

    -- With a uuid index 
    QUERY PLAN
    Index Scan using idx_tmptable on tmptable (cost=0.29..2.51 rows=1 width=1797) (actual time=0.012..0.013 rows=1 loops=1)
      Index Cond: (uuidkey = '755ad490-9a34-4c9f-8027-45fa37632b04'::uuid)
    Planning time: 0.109 ms
    Execution time: 0.029 ms


  1. mysql lagrad procedurfel (1172, 'Resultat bestod av mer än en rad')

  2. Hur date_trunc() fungerar i PostgreSQL

  3. Effektivt avgöra om ett företag är öppet eller inte baserat på butikens öppettider

  4. få vanliga rader från en tabell mot valfri kolumn