Sobes.tech
Middle

PostgreSQLде кандай түрдөгү индекстер бар?

sobes.tech AI

AIден жооп

Төмөндө негизги көрсөткүч түрлөрү бар:

  1. B-дерево (B-дерево) - эң кеңири тараган түрү, көбүнчө суроолорго ылайыктуу (теңдик, салыштыруу, диапазон). Тең салмактуу даракка негизделген.

  2. Hash (Хеш) - = салыштыруу үчүн колдонулат. Мындай суроолор үчүн B-дереведен тезирек, бирок салыштыруу жана диапазонду колдобойт. Түйүндүн хеш-баасын жана сапка көрсөткүчтү сактайт.

  3. GiST (Generalized Search Tree) - жалпы издөө дарагынын түзүмү, татаал маалымат түрлөрү үчүн ар кандай индекс түзүүгө мүмкүндүк берет (геометриялык, тексттик, толук текст менен издөө). Тең салмактуу даракка негизделген.

  4. SP-GiST (Space-Partitioned Generalized Search Tree) - GiSTтин атайын версиясы, кеңейтүүчү маалыматтарды бөлүү мүмкүнчүлүгү бар (мисалы, чекиттер, тик бурчтуктар). Мисалдар: k-d дарактары, quadtree.

  5. GIN (Generalized Inverted Index) - жалпы инверттелген индекс, негизинен массивдер, JSONB сыяктуу түзүмдөрдүн ичиндеги элементтерди издөө үчүн колдонулат. Толук текст менен издөөдө кеңири колдонулат.

  6. BRIN (Block Range INdex) - блок диапазон индекси. Чоң таблицалар үчүн ылайыктуу, алардын маалыматтары табигый тартипте жайгашкан (мисалы, убакыт боюнча). Физикалык блоктордогу маанилердин диапазонун индекстейт.

  7. 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)), маанилердин комбинациясы жоктугун тез аныктоо.

Индекстердин түрүн тандоо багытталган маалымат түрүнө жана суроолордун түрүнө көз каранды.