PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

PostgreSQL - zapytanie o indeks GIN o wartości HSTORE

Twoja pierwsza próba jest prawidłowa, ale musisz użyć (częściowych) indeksów btree i skanowania indeksów bitmap, aby na nich polegać:

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

To samo dla masy, a jeśli planista nie dostanie tego na miejscu, dodaj dwie klauzule where, tj. where ext->'size' is not null i to samo dla masy.

Jeśli istnieje jakiś wzór (co jest prawdopodobne, ponieważ większość produktów o rozmiarze ma również masę), potencjalnie utwórz indeks wielokolumnowy łączący dwa - jeden worek, drugi opis.

Indeks gin tak, jak go napisałeś, wraz z towarzyszącym mu zapytaniem (z błędem składni) zasadniczo zrobi to samo, ale nieuporządkowany; będzie wolniej.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django:IntegrityError podczas add()

  2. PostgreSQL:pokaż podróże w obrębie ramki ograniczającej

  3. Ograniczenie nakładania się dat Postgres

  4. Jak działa Acosd() w PostgreSQL

  5. Postgresql json jak zapytanie