PostgreSQL Nedir?

PostgreSQL, verileri güvenli, tutarlı ve yüksek performanslı şekilde saklamak ve yönetmek için kullanılan açık kaynaklı, gelişmiş bir ilişkisel veritabanı sistemidir.

Sadece Bir Veritabanı Değil, Bir Altyapı

PostgreSQL (kısaca Postgres), açık kaynak, yüksek güvenilirlikli ve kurumsal seviyede kullanılan bir ilişkisel veritabanı yönetim sistemidir.

Ama PostgreSQL’i “sadece tablo tutan bir veritabanı” olarak düşünmek eksik olur.

PostgreSQL;
veri bütünlüğü,
yüksek eşzamanlılık,
karmaşık sorgular,
büyük veri hacimleri
için tasarlanmış bir altyapıdır.


PostgreSQL Neden Bu Kadar Güçlü?

Birçok sistemde PostgreSQL tercih edilmesinin temel sebepleri şunlardır:

  • ACID uyumluluğu (veri güvenliği)
  • MVCC sayesinde yüksek performans
  • Gelişmiş indeksleme
  • JSON / JSONB desteği
  • Extensible (genişletilebilir) mimari

Bunları tek tek, sözlü şekilde açalım.


ACID Nedir? PostgreSQL Bunu Nasıl Sağlar?

ACID, veritabanlarının olmazsa olmazıdır:

  • Atomicity → Ya hep ya hiç
  • Consistency → Kurallar asla bozulmaz
  • Isolation → İşlemler birbirini bozmaz
  • Durability → Commit edilen veri kaybolmaz

PostgreSQL, her transaction’ı Write-Ahead Logging (WAL) ile diske yazar.

Yani elektrik kesilse bile:
“Ben bu veriyi yazmıştım” diyebilir.

Basit bir örnek
BEGIN;

UPDATE accounts 
SET balance = balance - 1000 
WHERE id = 1;

UPDATE accounts 
SET balance = balance + 1000 
WHERE id = 2;

COMMIT;

Eğer ortada bir hata olursa:

ROLLBACK;

➡️ Para asla yarım taşınmaz.


MVCC: PostgreSQL Neden Kilitlenmez?

Çoğu kişi PostgreSQL’i sevdikten sonra şunu söyler:

“Aynı anda yüzlerce kişi sorgu atıyor ama sistem kilitlenmiyor.”

Bunun sebebi MVCC (Multi-Version Concurrency Control).

Mantık şu:
  • Okuma işlemleri yazma işlemlerini beklemez
  • Her transaction, verinin kendi versiyonunu görür

Yani:

  • Sen eski veriyi okurken
  • Başkası yeni veriyi yazabilir

Bu da yüksek trafikli sistemlerde PostgreSQL’i çok güçlü yapar.


PostgreSQL’de İndeksleme: Gerçek Performans Burada

İndeks yoksa:

PostgreSQL tüm tabloyu satır satır gezer.

İndeks varsa:

Aradığını direkt bulur.

En yaygın indeks türleri
1️⃣ B-Tree (varsayılan)
CREATE INDEX idx_users_email
ON users(email);
  • =
  • <, >
  • BETWEEN

için idealdir.


2️⃣ GIN (özellikle JSONB için)
CREATE INDEX idx_users_meta
ON users
USING GIN (metadata);

JSON içinde arama yapıyorsan olmazsa olmaz.


3️⃣ Partial Index (çok az bilinir ama çok güçlü)
CREATE INDEX idx_active_users
ON users(email)
WHERE is_active = true;

Sadece aktif kullanıcılar için indeks oluşturur.
Daha az disk, daha hızlı sorgu.


JSON ve JSONB: PostgreSQL’i Modern Yapan Şey

PostgreSQL, JSON’u sadece saklamaz.
İçinde sorgu da yapar.

SELECT *
FROM users
WHERE profile->>'city' = 'Ankara';

JSONB kullanırsan:

  • Binary format
  • Daha hızlı arama
  • GIN indeks desteği

Bu yüzden:

PostgreSQL = SQL + NoSQL hibriti gibi çalışır.


Function & Trigger: İş Kuralları Veritabanında

PostgreSQL’de iş mantığını sadece backend’e yazmak zorunda değilsin.

Örnek: otomatik updated_at
CREATE OR REPLACE FUNCTION update_timestamp()
RETURNS TRIGGER AS $$
BEGIN
  NEW.updated_at = now();
  RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER trg_update_timestamp
BEFORE UPDATE ON users
FOR EACH ROW
EXECUTE FUNCTION update_timestamp();

Artık backend unuttuysa bile
veritabanı seni kurtarır.


PostgreSQL Nerelerde Kullanılır?

Gerçek dünyadan örnekler:

  • Finans uygulamaları
  • Bankacılık sistemleri
  • Sağlık verileri
  • ERP / CRM sistemleri
  • SaaS ürünleri
  • Büyük ölçekli API backend’leri

Sebep net:

Veri kaybına tahammülü olmayan sistemler


PostgreSQL vs Diğerleri (Kısa ve Net)
  • MySQL → Basit işler, hızlı başlangıç
  • PostgreSQL → Karmaşık işler, uzun vadeli sistemler
  • MongoDB → Şema esnekliği, ama transaction sınırlı

Kurumsal bir projede:
“İşler büyüyebilir” diyorsan
PostgreSQL güvenli limandır.


Sonuç: PostgreSQL’i Ne Zaman Seçmeliyim?

Şu sorulardan biri bile “evet” ise:

  • Veri kritik mi?
  • Trafik artacak mı?
  • Karmaşık raporlar olacak mı?
  • JSON + SQL birlikte mi kullanılacak?
  • Uzun vadeli bir ürün mü?

➡️ PostgreSQL doğru seçimdir.

Kaynakça:
  • https://seeklogo.com/vector-logo/320016/postgresql

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir