PostgreSQLде кандай түрдөгү индекстер бар?
sobes.tech AI
AIден жооп
Төмөндө негизги көрсөткүч түрлөрү бар:
-
B-дерево (B-дерево) - эң кеңири тараган түрү, көбүнчө суроолорго ылайыктуу (теңдик, салыштыруу, диапазон). Тең салмактуу даракка негизделген.
-
Hash (Хеш) - = салыштыруу үчүн колдонулат. Мындай суроолор үчүн B-дереведен тезирек, бирок салыштыруу жана диапазонду колдобойт. Түйүндүн хеш-баасын жана сапка көрсөткүчтү сактайт.
-
GiST (Generalized Search Tree) - жалпы издөө дарагынын түзүмү, татаал маалымат түрлөрү үчүн ар кандай индекс түзүүгө мүмкүндүк берет (геометриялык, тексттик, толук текст менен издөө). Тең салмактуу даракка негизделген.
-
SP-GiST (Space-Partitioned Generalized Search Tree) - GiSTтин атайын версиясы, кеңейтүүчү маалыматтарды бөлүү мүмкүнчүлүгү бар (мисалы, чекиттер, тик бурчтуктар). Мисалдар: k-d дарактары, quadtree.
-
GIN (Generalized Inverted Index) - жалпы инверттелген индекс, негизинен массивдер, JSONB сыяктуу түзүмдөрдүн ичиндеги элементтерди издөө үчүн колдонулат. Толук текст менен издөөдө кеңири колдонулат.
-
BRIN (Block Range INdex) - блок диапазон индекси. Чоң таблицалар үчүн ылайыктуу, алардын маалыматтары табигый тартипте жайгашкан (мисалы, убакыт боюнча). Физикалык блоктордогу маанилердин диапазонун индекстейт.
-
Bloom (Bloom фильтри) - так эмес, бирок ыктымалдык структура, элемент жоктугун тез текшерүү үчүн. Чоң таблицалардан тез тандоо үчүн колдонулат, так дал келүү талап кылынбаса же негизги индекс алдында кошумча фильтр катары.
Колдонуу мисалдары:
- B-дерево: сандар, даталар, саптар боюнча диапазон издөө үчүн индекс (
WHERE amount > 100). - Hash: түздөн-түз колдонулбайт, анткени B-дерево көбүнчө тезирек.
- GiST: гео-кеңдиктик индексдер (
gist(location)), толук текст издөө индекси (to_tsvector). - SP-GiST: эки өлчөмдүү маалыматтар үчүн индексдер (
spgist(point)). - GIN: массивдер үчүн индексдер (
gin(tags)), JSONB (gin(data)), толук текст издөө. - BRIN:
timestampталаасы үчүн индекс, лог таблицаларында убакыт боюнча тартиптелген. - Bloom: баардык багыттардын жыйындысы үчүн индекс (
bloom(col1, col2, col3)), маанилердин комбинациясы жоктугун тез аныктоо.
Индекстердин түрүн тандоо багытталган маалымат түрүнө жана суроолордун түрүнө көз каранды.