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

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

Kisaca

PostgreSQL, 35 yili askin gecmise sahip, standartlara siki uyumlu, nesne-iliskisel acik kaynak bir veritabanidir. JSONB, dizi ve cografi veri gibi zengin tipleri, tam ACID guvencesi ve karmasik analitik sorgulardaki gucuyle yeni projelerin gozdesi haline geldi. MySQL ise basit, okuma yogun web uygulamalarinda ve WordPress dunyasinda hala yaygin.

  • Ubuntu’da paket kurulumu kumeyi (cluster) otomatik olusturur; AlmaLinux/RHEL’de postgresql-setup –initdb elle calistirilir.
  • PostgreSQL karmasik JOIN, CTE ve JSON sorgularinda 2-13 kata kadar hizli; MySQL basit SELECT’lerde yaklasik %15-25 onde.
  • Veri yogun uygulamalar icin tam kontrol gerektiginden ayrilmis kaynakli bir VPS veya sunucu en saglikli zemindir.

PostgreSQL, 35 yili askin gelistirme gecmisine sahip, guclu ve standartlara son derece uyumlu acik kaynakli bir nesne-iliskisel veritabani sistemidir. Tam ACID uyumu, gelismis veri tipleri ve karmasik sorgulardaki gucuyle ozellikle veri yogun ve kurumsal uygulamalarda tercih edilir. Bu rehberde PostgreSQL’in ne oldugunu, nasil kurulacagini, MySQL’den farklarini ve performansi etkileyen pratik ayarlari adim adim anlatiyoruz.

PostgreSQL’i tam kontrolle ve komsu yuk olmadan calistirmak icin ayrilmis kaynakli bir VPS/sunucu idealdir. Yapilandirma uzerinde tam yetki, root erisimi ve garantili RAM/CPU bu tur veri yogun is yuklerinde fark yaratir.

PostgreSQL Nedir?

PostgreSQL (kisaca Postgres), yalnizca tablolari degil; diziler (array), JSON belgeleri, cografi veriler (PostGIS ile) ve kendi tanimladiginiz ozel tipler gibi zengin veri yapilarini da destekleyen bir “nesne-iliskisel” veritabanidir. Cok surumlu eszamanlilik kontrolu (MVCC) sayesinde yogun okuma-yazma altinda bile okuyucular yazicilari, yazicilar okuyuculari kilitlemeden tutarli calisir. Izin verici (permissive) PostgreSQL lisansiyla dagitilir ve tamamen ucretsizdir; ticari kullanimda dahi ek lisans bedeli istemez.

PostgreSQL’i one cikaran sey yalnizca veri saklamasi degil, veritabanini bir uygulama platformu gibi genisletebilmenizdir. Saklanan yordamlari (stored procedure) PL/pgSQL, PL/Python veya PL/Perl ile yazabilir; kendi fonksiyon, operator ve veri tiplerinizi tanimlayabilir; pgvector gibi 300’u askin eklentiyle yapay zeka vektor aramasindan zaman serisi verisine kadar pek cok senaryoyu ayni motorda cozebilirsiniz.

Mail hosting 1 ay ücretsiz

Guncel Surumler ve Surum Politikasi

2026 itibariyla PostgreSQL’in kararli ana surumu 18 ailesidir (18.4 gibi bakim guncellemeleriyle). Bir sonraki ana surum olan PostgreSQL 19 beta asamasindadir ve yil ici genel kullanima cikmasi beklenmektedir. PostgreSQL projesi her ana surumu yaklasik 5 yil destekler; bu sure boyunca yilda dort kez yayinlanan kucuk surum guncellemeleriyle (orn. 18.1, 18.2) guvenlik yamalari ve hata duzeltmeleri saglanir. Uretim ortaminda her zaman destekteki bir ana surumu kullanmak ve kucuk guncellemeleri duzenli uygulamak en saglikli yaklasimdir.

PostgreSQL Kurulumu

Asagidaki adimlar, en yaygin iki dagitim ailesi icin kurulumu gosterir. Komutlari root yetkili (sudo) bir kullaniciyla calistirin.

# 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

Onemli fark: Ubuntu/Debian paketi veritabani kumesini (cluster) otomatik olustururken, AlmaLinux/RHEL’de postgresql-setup --initdb komutunu elle calistirmaniz zorunludur. Bu adimi atlarsaniz servis baslamaz ve “data directory is empty” benzeri hatalar alirsiniz.

En guncel ana surumu istiyorsaniz, dagitimin varsayilan deposu yerine resmi PostgreSQL deposunu (PGDG) ekleyebilirsiniz. Boylece dagitimla gelen eski surume bagli kalmaz, surumler arasinda gecis yapabilirsiniz.

Kurulumu Dogrulama

# Servis durumu
sudo systemctl status postgresql

# Surum kontrolu
psql --version

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

Kurulumda postgres adinda bir sistem ve veritabani superkullanicisi otomatik olusur. Tum yonetimsel islemleri bu kullanici uzerinden baslatabilirsiniz.

Kullanici ve Veritabani Olusturma

Once postgres superkullanicisiyla psql kabugunu acin:

sudo -u postgres psql

Ardindan rolu (kullaniciyi) ve veritabanini olusturun:

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

Iyi uygulama notu: PostgreSQL 15 ve sonrasinda yeni bir veritabaninin public semasinda varsayilan olarak siradan kullanicilar tablo olusturamaz. Uygulamanizin tablo yaratmasi gerekiyorsa, semayi sahibine acikca yetkilendirin (orn. GRANT ALL ON SCHEMA public TO kullanici;) veya uygulamaya ozel bir sema kullanin. Bu degisiklik, eski surumlere alismis kullanicilarin sik takildigi noktalardan biridir.

Komut satiri araclari createdb, createuser ve dropdb ile de ayni islemler kabuk disindan yapilabilir.

Uzaktan Baglanti Icin pg_hba.conf

PostgreSQL varsayilan olarak yalnizca yerel baglantilara izin verir. Uzaktan baglanmak isterseniz iki dosyayi duzenlemeniz gerekir: postgresql.conf icinde listen_addresses degerini genisletin; pg_hba.conf icinde guvenli bir kimlik dogrulama satiri (tercihen scram-sha-256) ekleyin. Sunucuyu internete tamamen acmak yerine yalnizca guvenilir IP araliklarina izin vermek ve mumkunse SSL/TLS zorunlu kilmak en guvenli yontemdir.

PostgreSQL ile MySQL Farki

Iki sistem de olgun, acik kaynak ve genis topluluga sahip. Ancak tasarim felsefeleri farkli: PostgreSQL standartlara uyum ve genisletilebilirlik etrafinda sekillenirken, MySQL hiz ve kolay kurulum odaginda buyumustur. Asagidaki tablo temel ayrimlari ozetler.

Kriter PostgreSQL MySQL
Tur Nesne-iliskisel (ORDBMS) Iliskisel (RDBMS)
ACID Her zaman tam (cekirdekte) InnoDB motorunda tam
JSON JSON + JSONB (indekslenebilir) JSON (sinirli indeks)
Veri tipleri Zengin (array, range, ozel tip) Daha sinirli
Eszamanlilik MVCC (okuyucu/yazici kilitlemez) InnoDB’de MVCC
Eklenti ekosistemi 300+ eklenti (pgvector dahil) Daha az, motor tabanli
Lisans Izin verici (BSD benzeri) Cift lisans (GPL/ticari)
Guclu oldugu alan Karmasik sorgu, analitik, JSON Okuma yogun web, basit sorgu

Performans: Hangisi Daha Hizli?

“Hangisi daha hizli?” sorusunun tek cevabi yoktur; is yukune baglidir. Gunumuzdeki karsilastirmalar su tabloyu cizer:

Senaryo Daha hizli Yaklasik fark
Basit okuma (OLTP SELECT) MySQL ~%15-25 daha hizli
Karmasik JOIN / CTE / alt sorgu PostgreSQL 2-13 kata kadar hizli
JSON / belge sorgulari PostgreSQL ~3-4 kat hizli
Analitik ve yazma yogun is yuku PostgreSQL Belirgin ustun

Pratikte cogu is yukunde iki sistem birbirine yakindir (genelde %30 bandinda). Basit, okuma agirlikli bir web sitesi calistiriyorsaniz MySQL fazlasiyla yeterli olur; veri modeliniz karmasiklasiyor, analitik sorgular, JSON belgeleri veya cografi veri devreye giriyorsa PostgreSQL acik ara konfor saglar. Egilim de bu yonde: yeni projeler giderek daha sik PostgreSQL’i varsayilan secim olarak aliyor.

Lisans ve Maliyet

PostgreSQL’in izin verici lisansi, ticari urununuze gomseniz dahi ek lisans bedeli veya kaynak kodu acma zorunlulugu getirmez. MySQL ise GPL (acik kaynak) ve ticari lisans olmak uzere cift modelle dagitilir; tescilli (proprietary) urunlere gomulecekse ticari lisans gundeme gelebilir. Pek cok kurumun PostgreSQL’e yonelmesinde bu lisans rahatligi belirleyici olmustur.

Temel Bakim ve Performans Ipuclari

PostgreSQL’i kurmak kolaydir; saglikli tutmak ise birkac aliskanlik gerektirir. Veri yogun ortamlarda en cok ise yarayan baslangic adimlari sunlardir:

  • VACUUM ve autovacuum: MVCC tasarimi nedeniyle guncellenen/silinen satirlar “olu” iz birakir. Otomatik vakum (autovacuum) bunlari temizler; yogun yazma yapilan tablolarda autovacuum esiklerini sikilastirmak sismeyi (bloat) onler.
  • Indeksleme: Sik sorgulanan sutunlara B-tree; JSONB ve dizi aramalarinda GIN; cografi/aralik verilerde GiST indeksleri buyuk fark yaratir. Gereksiz indeks ise yazmayi yavaslatir, dengeyi olcerek kurun.
  • Bellek ayarlari: shared_buffers, work_mem ve effective_cache_size degerlerini sunucu RAM’ine gore ayarlamak varsayilanlara gore ciddi hiz kazandirir. Bu yuzden garantili RAM sunan ayrilmis bir ortam onemlidir.
  • Yedekleme: Mantiksal yedek icin pg_dump/pg_dumpall, fiziksel/nokta-bazli kurtarma icin pg_basebackup + WAL arsivleme kullanin. Yedeginizi duzenli olarak geri yukleyerek test edin.
  • Izleme: pg_stat_statements eklentisiyle en pahali sorgulari belirleyip EXPLAIN ANALYZE ile plan inceleyin.

Bu islemler kok (root) erisimi ve sunucu ayarlarina mudahale gerektirdiginden, paylasimli ortamdansa kontrolun sizde oldugu bir bulut sunucu ya da fiziksel sunucu bu is yuku icin daha uygundur.

PostgreSQL Hangi Senaryoda Tercih Edilir?

PostgreSQL ozellikle su durumlarda one cikar: finansal ve kurumsal uygulamalar gibi mutlak tutarlilik gerektiren sistemler; cok sayida JOIN, alt sorgu ve pencere fonksiyonu iceren analitik raporlar; JSONB ile yari yapili veri saklayan modern uygulamalar; PostGIS ile cografi bilgi sistemleri; ve pgvector ile yapay zeka destekli arama/oneri sistemleri. MySQL ise blog, kucuk-orta olcekli kurumsal site ve WordPress gibi okuma agirlikli, basit semali projelerde halen pratik ve hizli bir tercihtir.

Hangi veritabanini secerseniz secin, altyapinin saglamligi performansin yarisidir. Alastyr’in Izmir’deki kendine ait veri merkezinde, N+1 yedekli altyapi, Dell EMC all-flash depolama ve Intel Xeon Gold islemcilerle veritabani is yukleriniz dusuk gecikmeyle calisir. Ister yonetimli bir hosting uzerinde MySQL’li uygulamanizi barindirin, ister tam kontrol istediginiz PostgreSQL projeniz icin ayrilmis bir sunucu kurun, 7/24 destek ve gunluk yedekleme standart olarak yaninizda.

Sikca Sorulan Sorular

PostgreSQL ucretsiz mi?

Evet. Izin verici (permissive) PostgreSQL lisansiyla tamamen ucretsizdir ve ticari urunlerde dahi ek lisans bedeli ya da kaynak kodu acma zorunlulugu getirmez.

PostgreSQL’in guncel surumu hangisi?

2026 itibariyla kararli ana surum PostgreSQL 18 ailesidir; bir sonraki ana surum olan PostgreSQL 19 beta asamasinda olup yil ici genel kullanima cikmasi beklenir. Uretimde her zaman destekteki bir ana surumu kullanmak onerilir.

AlmaLinux/RHEL’de PostgreSQL neden baslamiyor?

RHEL ailesinde paket, veritabani kumesini otomatik olusturmaz. Servisi baslatmadan once postgresql-setup --initdb komutunu elle calistirmaniz gerekir; aksi halde servis baslamaz.

JSONB nedir, JSON’dan farki ne?

JSONB, PostgreSQL’in ayristirilmis ikili JSON tipidir. JSON tipinden farkli olarak indekslenebilir (GIN), tekrar ayristirma gerektirmez ve belge sorgularinda cok daha hizlidir; bu nedenle cogu uygulamada JSONB tercih edilir.

PostgreSQL mi MySQL mi daha hizli?

Is yukune baglidir. MySQL basit okuma yogun sorgularda yaklasik %15-25 daha hizliyken, PostgreSQL karmasik JOIN, CTE ve JSON sorgularinda 2-13 kata kadar one gecer. Cogu gunluk senaryoda ikisi birbirine yakindir.

Ne zaman MySQL yerine PostgreSQL secmeliyim?

Karmasik sorgular, analitik raporlar, JSONB/dizi gibi zengin veri tipleri, cografi veri (PostGIS) veya vektor arama (pgvector) gerektiginde PostgreSQL daha uygundur. Basit, okuma agirlikli web siteleri icin MySQL yeterlidir.

PostgreSQL WordPress’i destekler mi?

WordPress varsayilan olarak MySQL/MariaDB kullanir. PostgreSQL daha cok ozel gelistirilen uygulamalarda tercih edilir; WordPress’i PostgreSQL ile calistirmak resmi olarak desteklenmez.

PostgreSQL’i uzaktan baglantiya nasil acarim?

postgresql.conf icinde listen_addresses degerini genisletip pg_hba.conf icine guvenli bir kimlik dogrulama satiri (tercihen scram-sha-256) eklemeniz gerekir. Guvenlik icin yalnizca guvenilir IP araliklarina izin verin ve mumkunse SSL/TLS kullanin.

PostgreSQL icin paylasimli hosting yeterli mi?

Hafif kullanimlar disinda genellikle degildir. VACUUM ayarlari, bellek parametreleri ve eklenti kurulumu kok erisimi gerektirir; bu nedenle veri yogun PostgreSQL projeleri icin ayrilmis kaynakli bir VPS, bulut ya da fiziksel sunucu daha uygundur.

PostgreSQL Icin Guclu Sunucu

Veri yogun uygulamalariniz icin bol RAM’li, NVMe SSD’li, root erisimli ayrilmis kaynakli VPS. Izmir’deki kendi veri merkezimizde, 7/24 destek ve gunluk yedekleme ile.

VPS/Sunucu Cozumleri →

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