sql >> Database teknologi >  >> RDS >> PostgreSQL

PostgreSQL - forespørgsel mod GIN-indeks for HSTORE-værdi

Dit første forsøg er korrekt, men du skal bruge (delvise) btree-indekser og bitmap-indeksscanninger for at stole på det:

create index on product(((ext->'size')::int)) where ((ext->'size') is not null);

Det samme for masse, og hvis planlæggeren ikke får det på stedet, tilføj to hvor klausuler, dvs. where ext->'size' is not null og det samme for masse.

Hvis der er et mønster af en eller anden art (hvilket er sandsynligt, da de fleste produkter med en størrelse også har en masse), kan du potentielt oprette et indeks med flere kolonner, der kombinerer de to - en sæk, den anden beskrivelse.

Gin-indekset, som du skrev det, sammen med den medfølgende forespørgsel (med en syntaksfejl) vil grundlæggende gøre det samme, men uordnet; det bliver langsommere.



  1. MySql indsæt binære data til db uden fejl

  2. Forbinder Visual c++ 2008 til MySql

  3. Oracle Apex 5.0 - Vis statisk billede

  4. Find det sidste indeks af en streng i Oracle