sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL - dotaz na GIN index hodnoty HSTORE

Váš počáteční pokus je správný, ale musíte použít (částečné) indexy btree a skenování indexů bitmap, abyste se na něj mohli spolehnout:

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

Totéž pro hmotnost, a pokud to plánovač nezjistí na místě, přidejte dvě klauzule where, tj. where ext->'size' is not null a totéž pro hmotnost.

Pokud existuje nějaký vzor (což je pravděpodobné, protože většina produktů s velikostí má také hmotnost), potenciálně vytvořte vícesloupcový index spojující dva - jeden vak, druhý popis.

Index gin tak, jak jste jej napsali, spolu s doprovodným dotazem (s chybou syntaxe) budou v podstatě dělat totéž, ale neuspořádané; bude to pomalejší.



  1. postgresql port zmatení 5433 nebo 5432?

  2. Převeďte sloupec mysql DATETIME na epochové sekundy

  3. Co znamenají následující výrazy dotazu na import csv MySQL?

  4. Jaké je pravidlo pro „neznámé“ a odvození typu?