PostgreSQL Nedir, Nasıl Kurulur? (MySQL Farkı)

PostgreSQL Nedir, Nasıl Kurulur? (MySQL Farkı)

Kısaca

PostgreSQL, 35 yılı aşkın geçmişe sahip, standartlara sıkı uyumlu, nesne-ilişkisel açık kaynak bir veritabanıdır. JSONB, dizi ve coğrafi veri gibi zengin tipleri, tam ACID güvencesi ve karmaşık analitik sorgulardaki gücüyle yeni projelerin gözdesi haline geldi. MySQL ise basit, okuma yoğun web uygulamalarında ve WordPress dünyasında hâlâ yaygın.

  • Ubuntu’da paket kurulumu kümeyi (cluster) otomatik oluşturur; AlmaLinux/RHEL’de postgresql-setup –initdb elle çalıştırılır.
  • PostgreSQL karmaşık JOIN, CTE ve JSON sorgularında 2-13 kata kadar hızlı; MySQL basit SELECT’lerde yaklaşık %15-25 önde.
  • Veri yoğun uygulamalar için tam kontrol gerektiğinden ayrılmış kaynaklı bir VPS veya sunucu en sağlıklı zemindir.

PostgreSQL, 35 yılı aşkın geliştirme geçmişine sahip, güçlü ve standartlara son derece uyumlu açık kaynaklı bir nesne-ilişkisel veritabanı sistemidir. Tam ACID uyumu, gelişmiş veri tipleri ve karmaşık sorgulardaki gücüyle özellikle veri yoğun ve kurumsal uygulamalarda tercih edilir. Bu rehberde PostgreSQL’in ne olduğunu, nasıl kurulacağını, MySQL’den farklarını ve performansı etkileyen pratik ayarları adım adım anlatıyoruz.

PostgreSQL’i tam kontrolle ve komşu yük olmadan çalıştırmak için ayrılmış kaynaklı bir VPS/sunucu idealdir. Yapılandırma üzerinde tam yetki, root erişimi ve garantili RAM/CPU bu tür veri yoğun iş yüklerinde fark yaratır.

PostgreSQL Nedir?

PostgreSQL (kısaca Postgres), yalnızca tabloları değil; diziler (array), JSON belgeleri, coğrafi veriler (PostGIS ile) ve kendi tanımladığınız özel tipler gibi zengin veri yapılarını da destekleyen bir “nesne-ilişkisel” veritabanıdır. Çok sürümlü eşzamanlılık kontrolü (MVCC) sayesinde yoğun okuma-yazma altında bile okuyucular yazıcıları, yazıcılar okuyucuları kilitlemeden tutarlı çalışır. İzin verici (permissive) PostgreSQL lisansıyla dağıtılır ve tamamen ücretsizdir; ticari kullanımda dahi ek lisans bedeli istemez.

PostgreSQL’i öne çıkaran şey yalnızca veri saklaması değil, veritabanını bir uygulama platformu gibi genişletebilmenizdir. Saklanan yordamları (stored procedure) PL/pgSQL, PL/Python veya PL/Perl ile yazabilir; kendi fonksiyon, operatör ve veri tiplerinizi tanımlayabilir; pgvector gibi 300’ü aşkın eklentiyle yapay zeka vektör aramasından zaman serisi verisine kadar pek çok senaryoyu aynı motorda çözebilirsiniz.

Mail hosting 1 ay ücretsiz

Güncel Sürümler ve Sürüm Politikası

2026 itibarıyla PostgreSQL’in kararlı ana sürümü 18 ailesidir (18.4 gibi bakım güncellemeleriyle). Bir sonraki ana sürüm olan PostgreSQL 19 beta aşamasındadır ve yıl içi genel kullanıma çıkması beklenmektedir. PostgreSQL projesi her ana sürümü yaklaşık 5 yıl destekler; bu süre boyunca yılda dört kez yayınlanan küçük sürüm güncellemeleriyle (örn. 18.1, 18.2) güvenlik yamaları ve hata düzeltmeleri sağlanır. Üretim ortamında her zaman destekteki bir ana sürümü kullanmak ve küçük güncellemeleri düzenli uygulamak en sağlıklı yaklaşımdır.

PostgreSQL Kurulumu

Aşağıdaki adımlar, en yaygın iki dağıtım ailesi için kurulumu gösterir. Komutları root yetkili (sudo) bir kullanıcıyla çalıştırın.

# Ubuntu / Debian
sudo apt update
sudo apt install postgresql postgresql-contrib
sudo systemctl enable --now postgresql

# AlmaLinux / Rocky / RHEL (initdb ZORUNLU)
sudo dnf install -y postgresql-server postgresql-contrib
sudo postgresql-setup --initdb
sudo systemctl enable --now postgresql

Önemli fark: Ubuntu/Debian paketi veritabanı kümesini (cluster) otomatik oluştururken, AlmaLinux/RHEL’de postgresql-setup --initdb komutunu elle çalıştırmanız zorunludur. Bu adımı atlarsanız servis başlamaz ve “data directory is empty” benzeri hatalar alırsınız.

En güncel ana sürümü istiyorsanız, dağıtımın varsayılan deposu yerine resmi PostgreSQL deposunu (PGDG) ekleyebilirsiniz. Böylece dağıtımla gelen eski sürüme bağlı kalmaz, sürümler arasında geçiş yapabilirsiniz.

Kurulumu Doğrulama

# Servis durumu
sudo systemctl status postgresql

# Surum kontrolu
psql --version

# postgres kullanicisiyla baglanma
sudo -u postgres psql -c "SELECT version();"

Kurulumda postgres adında bir sistem ve veritabanı süperkullanıcısı otomatik oluşur. Tüm yönetimsel işlemleri bu kullanıcı üzerinden başlatabilirsiniz.

Kullanıcı ve Veritabanı Oluşturma

Önce postgres süperkullanıcısıyla psql kabuğunu açın:

sudo -u postgres psql

Ardından rolü (kullanıcıyı) ve veritabanını oluşturun:

CREATE USER kullanici WITH PASSWORD 'gizli_parola';
CREATE DATABASE mydb OWNER kullanici;
GRANT ALL PRIVILEGES ON DATABASE mydb TO kullanici;
q

İyi uygulama notu: PostgreSQL 15 ve sonrasında yeni bir veritabanının public şemasında varsayılan olarak sıradan kullanıcılar tablo oluşturamaz. Uygulamanızın tablo yaratması gerekiyorsa, şemayı sahibine açıkça yetkilendirin (örn. GRANT ALL ON SCHEMA public TO kullanici;) veya uygulamaya özel bir şema kullanın. Bu değişiklik, eski sürümlere alışmış kullanıcıların sık takıldığı noktalardan biridir.

Komut satırı araçları createdb, createuser ve dropdb ile de aynı işlemler kabuk dışından yapılabilir.

Uzaktan Bağlantı İçin pg_hba.conf

PostgreSQL varsayılan olarak yalnızca yerel bağlantılara izin verir. Uzaktan bağlanmak isterseniz iki dosyayı düzenlemeniz gerekir: postgresql.conf içinde listen_addresses değerini genişletin; pg_hba.conf içinde güvenli bir kimlik doğrulama satırı (tercihen scram-sha-256) ekleyin. Sunucuyu internete tamamen açmak yerine yalnızca güvenilir IP aralıklarına izin vermek ve mümkünse SSL/TLS zorunlu kılmak en güvenli yöntemdir.

PostgreSQL ile MySQL Farkı

İki sistem de olgun, açık kaynak ve geniş topluluğa sahip. Ancak tasarım felsefeleri farklı: PostgreSQL standartlara uyum ve genişletilebilirlik etrafında şekillenirken, MySQL hız ve kolay kurulum odağında büyümüştür. Aşağıdaki tablo temel ayrımları özetler.

Kriter PostgreSQL MySQL
Tür Nesne-ilişkisel (ORDBMS) İlişkisel (RDBMS)
ACID Her zaman tam (çekirdekte) InnoDB motorunda tam
JSON JSON + JSONB (indekslenebilir) JSON (sınırlı indeks)
Veri tipleri Zengin (array, range, özel tip) Daha sınırlı
Eşzamanlılık MVCC (okuyucu/yazıcı kilitlemez) InnoDB’de MVCC
Eklenti ekosistemi 300+ eklenti (pgvector dahil) Daha az, motor tabanlı
Lisans İzin verici (BSD benzeri) Çift lisans (GPL/ticari)
Güçlü olduğu alan Karmaşık sorgu, analitik, JSON Okuma yoğun web, basit sorgu

Performans: Hangisi Daha Hızlı?

“Hangisi daha hızlı?” sorusunun tek cevabı yoktur; iş yüküne bağlıdır. Günümüzdeki karşılaştırmalar şu tabloyu çizer:

Senaryo Daha hızlı Yaklaşık fark
Basit okuma (OLTP SELECT) MySQL ~%15-25 daha hızlı
Karmaşık JOIN / CTE / alt sorgu PostgreSQL 2-13 kata kadar hızlı
JSON / belge sorguları PostgreSQL ~3-4 kat hızlı
Analitik ve yazma yoğun iş yükü PostgreSQL Belirgin üstün

Pratikte çoğu iş yükünde iki sistem birbirine yakındır (genelde %30 bandında). Basit, okuma ağırlıklı bir web sitesi çalıştırıyorsanız MySQL fazlasıyla yeterli olur; veri modeliniz karmaşıklaşıyor, analitik sorgular, JSON belgeleri veya coğrafi veri devreye giriyorsa PostgreSQL açık ara konfor sağlar. Eğilim de bu yönde: yeni projeler giderek daha sık PostgreSQL’i varsayılan seçim olarak alıyor.

Lisans ve Maliyet

PostgreSQL’in izin verici lisansı, ticari ürününüze gömseniz dahi ek lisans bedeli veya kaynak kodu açma zorunluluğu getirmez. MySQL ise GPL (açık kaynak) ve ticari lisans olmak üzere çift modelle dağıtılır; tescilli (proprietary) ürünlere gömülecekse ticari lisans gündeme gelebilir. Pek çok kurumun PostgreSQL’e yönelmesinde bu lisans rahatlığı belirleyici olmuştur.

Temel Bakım ve Performans İpuçları

PostgreSQL’i kurmak kolaydır; sağlıklı tutmak ise birkaç alışkanlık gerektirir. Veri yoğun ortamlarda en çok işe yarayan başlangıç adımları şunlardır:

  • VACUUM ve autovacuum: MVCC tasarımı nedeniyle güncellenen/silinen satırlar “ölü” iz bırakır. Otomatik vakum (autovacuum) bunları temizler; yoğun yazma yapılan tablolarda autovacuum eşiklerini sıkılaştırmak şişmeyi (bloat) önler.
  • İndeksleme: Sık sorgulanan sütunlara B-tree; JSONB ve dizi aramalarında GIN; coğrafi/aralık verilerde GiST indeksleri büyük fark yaratır. Gereksiz indeks ise yazmayı yavaşlatır, dengeyi ölçerek kurun.
  • Bellek ayarları: shared_buffers, work_mem ve effective_cache_size değerlerini sunucu RAM’ine göre ayarlamak varsayılanlara göre ciddi hız kazandırır. Bu yüzden garantili RAM sunan ayrılmış bir ortam önemlidir.
  • Yedekleme: Mantıksal yedek için pg_dump/pg_dumpall, fiziksel/nokta-bazlı kurtarma için pg_basebackup + WAL arşivleme kullanın. Yedeğinizi düzenli olarak geri yükleyerek test edin.
  • İzleme: pg_stat_statements eklentisiyle en pahalı sorguları belirleyip EXPLAIN ANALYZE ile plan inceleyin.

Bu işlemler kök (root) erişimi ve sunucu ayarlarına müdahale gerektirdiğinden, paylaşımlı ortamdansa kontrolün sizde olduğu bir bulut sunucu ya da fiziksel sunucu bu iş yükü için daha uygundur.

PostgreSQL Hangi Senaryoda Tercih Edilir?

PostgreSQL özellikle şu durumlarda öne çıkar: finansal ve kurumsal uygulamalar gibi mutlak tutarlılık gerektiren sistemler; çok sayıda JOIN, alt sorgu ve pencere fonksiyonu içeren analitik raporlar; JSONB ile yarı yapılı veri saklayan modern uygulamalar; PostGIS ile coğrafi bilgi sistemleri; ve pgvector ile yapay zeka destekli arama/öneri sistemleri. MySQL ise blog, küçük-orta ölçekli kurumsal site ve WordPress gibi okuma ağırlıklı, basit şemalı projelerde halen pratik ve hızlı bir tercihtir.

Hangi veritabanını seçerseniz seçin, altyapının sağlamlığı performansın yarısıdır. Alastyr’ın İzmir’deki kendine ait veri merkezinde, N+1 yedekli altyapı, Dell EMC all-flash depolama ve Intel Xeon Gold işlemcilerle veritabanı iş yükleriniz düşük gecikmeyle çalışır. İster yönetimli bir hosting üzerinde MySQL’li uygulamanızı barındırın, ister tam kontrol istediğiniz PostgreSQL projeniz için ayrılmış bir sunucu kurun, 7/24 destek ve günlük yedekleme standart olarak yanınızda.

Sıkça Sorulan Sorular

PostgreSQL ücretsiz mi?

Evet. İzin verici (permissive) PostgreSQL lisansıyla tamamen ücretsizdir ve ticari ürünlerde dahi ek lisans bedeli ya da kaynak kodu açma zorunluluğu getirmez.

PostgreSQL’in güncel sürümü hangisi?

2026 itibarıyla kararlı ana sürüm PostgreSQL 18 ailesidir; bir sonraki ana sürüm olan PostgreSQL 19 beta aşamasında olup yıl içi genel kullanıma çıkması beklenir. Üretimde her zaman destekteki bir ana sürümü kullanmak önerilir.

AlmaLinux/RHEL’de PostgreSQL neden başlamıyor?

RHEL ailesinde paket, veritabanı kümesini otomatik oluşturmaz. Servisi başlatmadan önce postgresql-setup --initdb komutunu elle çalıştırmanız gerekir; aksi halde servis başlamaz.

JSONB nedir, JSON’dan farkı ne?

JSONB, PostgreSQL’in ayrıştırılmış ikili JSON tipidir. JSON tipinden farklı olarak indekslenebilir (GIN), tekrar ayrıştırma gerektirmez ve belge sorgularında çok daha hızlıdır; bu nedenle çoğu uygulamada JSONB tercih edilir.

PostgreSQL mi MySQL mi daha hızlı?

İş yüküne bağlıdır. MySQL basit okuma yoğun sorgularda yaklaşık %15-25 daha hızlıyken, PostgreSQL karmaşık JOIN, CTE ve JSON sorgularında 2-13 kata kadar öne geçer. Çoğu günlük senaryoda ikisi birbirine yakındır.

Ne zaman MySQL yerine PostgreSQL seçmeliyim?

Karmaşık sorgular, analitik raporlar, JSONB/dizi gibi zengin veri tipleri, coğrafi veri (PostGIS) veya vektör arama (pgvector) gerektiğinde PostgreSQL daha uygundur. Basit, okuma ağırlıklı web siteleri için MySQL yeterlidir.

PostgreSQL WordPress’i destekler mi?

WordPress varsayılan olarak MySQL/MariaDB kullanır. PostgreSQL daha çok özel geliştirilen uygulamalarda tercih edilir; WordPress’i PostgreSQL ile çalıştırmak resmi olarak desteklenmez.

PostgreSQL’i uzaktan bağlantıya nasıl açarım?

postgresql.conf içinde listen_addresses değerini genişletip pg_hba.conf içine güvenli bir kimlik doğrulama satırı (tercihen scram-sha-256) eklemeniz gerekir. Güvenlik için yalnızca güvenilir IP aralıklarına izin verin ve mümkünse SSL/TLS kullanın.

PostgreSQL için paylaşımlı hosting yeterli mi?

Hafif kullanımlar dışında genellikle değildir. VACUUM ayarları, bellek parametreleri ve eklenti kurulumu kök erişimi gerektirir; bu nedenle veri yoğun PostgreSQL projeleri için ayrılmış kaynaklı bir VPS, bulut ya da fiziksel sunucu daha uygundur.

PostgreSQL İçin Güçlü Sunucu

Veri yoğun uygulamalarınız için bol RAM’li, NVMe SSD’li, root erişimli ayrılmış kaynaklı VPS. İzmir’deki kendi veri merkezimizde, 7/24 destek ve günlük yedekleme ile.

VPS/Sunucu Çözümleri →

Türkiye'nin En Çok Tavsiye Edilen Domain, Hosting ve Bulut Servis Sağlayıcısı
İnternet sitesi Alastyr İnternet Sitesi
Yazı oluşturuldu 494

Benzer yazılar

Aramak istediğinizi üstte yazmaya başlayın ve aramak için enter tuşuna basın. İptal için ESC tuşuna basın.

Üste dön