Verilənlər bazasında JSONB formatında sahələrlə işləməni optimallaşdırmaq üçün düzgün indeksi necə seçmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
PostgreSQL-də JSONB formatında sahələrlə işləməni optimallaşdırmaq üçün, sorğuların xarakterinə əsasən düzgün indeks növünü seçmək vacibdir:
-
GIN (Ümumi Tərs İndeks) — JSONB üçün ən yaygın indeksdir. Açarlar və dəyərlər üzrə axtarış üçün effektivdir, məsələn,
@>,?,?|,?&operatorlarından istifadə edərkən. Əgər tez-tez açarların və ya alt sənədlərin mövcudluğunu yoxlayan sorğular edirsinizsə, uyğundur. -
BTREE — xüsusi ifadələri indeksləşdirmək üçün istifadə edilə bilər, məsələn, əgər tez-tez JSONB-də müəyyən bir açar üzrə filtrləyirsinizsə, bu sahəni çıxaran ifadəyə indeks yarada bilərsiniz.
-
HASH — JSONB ilə nadir hallarda istifadə olunur, çünki GIN daha çevikdir.
GIN indeksinin yaradılması nümunəsi:
CREATE INDEX idx_jsonb_data ON table_name USING GIN (jsonb_column);
Əgər JSONB daxilində xüsusi bir sahəni indeksləşdirmək istəyirsinizsə:
CREATE INDEX idx_jsonb_field ON table_name USING BTREE ((jsonb_column->>'field_name'));
İndeks seçimi, ən çox hansı əməliyyatları həyata keçirdiyinizə bağlıdır: açarlar üzrə axtarış, dəyərlərə görə filtr və ya xüsusi sahələrin çıxarılması.