top of page

PostgreSQL İndex'lerine Genel Bakış

PostgreSQL'de kullanılan birkaç farklı index türü bulunmaktadır, bu index türleri veritabanı performansını artırmak için farklı türde sorgulara ve veri yapılarına yönelik olarak tasarlanmıştır.


Bana kalırsa PostgreSQL İndex Management hususunda oldukça başarılı ve çok fazla ve farklı çözüm sunmaktadır.


Bu index türleri, farklı veri yapıları ve sorgu tipleri için optimize edilmiştir. Doğru index türünü seçmek, veritabanı performansını önemli ölçüde artırabilir. Ancak, her index türünün avantajları ve dezavantajları olduğundan, belirli bir senaryoya en uygun index türünü seçmek önemlidir.


Yazdığımız sorguların optimizasyonu oldukça önemlidir, burada bir yol haritamızın olması gerekmektedir. Index sadece bir çözümdür. Farklı çözümleride denemek ve en iyi çözümü bulmak adına execution planning çalışmaları yapmak gerekmektedir.


İşte PostgreSQL'de yaygın olarak kullanılan index türlerinden bazıları.


B-Tree Index:



B-Tree (Balanced Tree) index, PostgreSQL'de en yaygın kullanılan index türüdür. Varsayılan index türüdür.

Bu index türü, sıralı verileri hızlı bir şekilde aramak ve sıralamak için kullanılır. Genellikle eşitlik ve aralık sorgularında etkilidir.

"<   <=   =   >=   >"

Hash Index:


Hash index, eşitlik sorgularında hızlı arama sağlamak için kullanılır. Ancak, aralık sorgularında etkili değildir ve yalnızca tam eşleşme üzerinde çalışır. Hash index'ler genellikle eşleme operatörleri (örneğin, "=") kullanılan sorgularda performansı artırmak için kullanılır.

"="

GiST (Generalized Search Tree) Index:


GiST, genel amaçlı bir arama ağacıdır ve çeşitli veri tipleri üzerinde indeksleme yapmak için kullanılabilir. Geometrik, metinsel ve benzeri veri tipleri için kullanılabilir. İçerdiği algoritma ve veri yapısı itibariyle, farklı türde sorgular için kullanılabilir.

"<<   &<   &>   >>   <<|   &<|   |&>   |>>   @>   <@   ~=   &&"

GIN (Generalized Inverted Index) Index:


GIN, ters indeksleme yapmak için kullanılır. Özellikle metin arama gibi durumlarda etkilidir. Metin içerisinde geçen kelimelerin hızlı bir şekilde bulunması için kullanılır. Örneğin, tam metin arama (full-text search) işlemleri için idealdir.



BRIN (Block Range Index) Index:


BRIN, büyük tablolarda aralık tabanlı sorgular için etkilidir. Verileri blok aralıklarına böler ve bu blokların minimum ve maksimum değerlerini saklar. Bu sayede, büyük veri kümeleri üzerinde sorgulama yaparken performansı artırır.


"<   <=   =   >=   >"

Örnek bir index aşağıdaki gibi oluşturulmaktadır.

CREATE INDEX Name ON Table USING HASH ("Column");
CREATE INDEX Name ON Table USING BTree ("Column");




24 görüntüleme0 yorum

Comments


bottom of page