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.