Sobes.tech
Middle

Jak funguje GIN index?

sobes.tech AI

Odpověď od AI

GIN (Generalizovaný Invertovaný Index) je typ indexu v PostgreSQL, optimalizovaný pro rychlé vyhledávání ve složitých datových typech, jako jsou pole, JSON, fulltextové vyhledávání a další struktury, kde jeden klíč může odpovídat více hodnotám.

Princip fungování GIN indexu je založen na invertovaném indexu: pro každou hodnotu (klíč) je uchováván seznam odkazů na řádky tabulky, kde se tato hodnota vyskytuje. To umožňuje efektivní provádění dotazů s operátory, které kontrolují přítomnost prvků v polích nebo klíčů v JSON.

Vlastnosti GIN:

  • Podporuje rychlé vyhledávání více hodnot v jednom poli.
  • Index zabírá více místa a vyžaduje více času na aktualizaci ve srovnání s B-stromem.
  • Je vhodný pro fulltextové vyhledávání a práci s JSONB.

Příklad použití GIN pro JSONB:

CREATE INDEX idx_data_gin ON my_table USING GIN (data jsonb_path_ops);

SELECT * FROM my_table WHERE data @> '{"key": "value"}';

Tento index umožňuje rychle najít řádky, kde pole data obsahuje daný klíč a hodnotu.