Veritabanı Nedir? MySQL, PostgreSQL, SQLite ve MongoDB Karşılaştırması
Veritabanı nedir, ne işe yarar? İlişkisel ve NoSQL farkı; MySQL, PostgreSQL, SQLite ve MongoDB karşılaştırması, sunucuda veritabanı barındırma ve güvenlik.
Kısa cevap: Veritabanı, verilerin düzenli, hızlı erişilebilir ve güvenli şekilde saklandığı sistemdir. Bir e-ticaret sitesindeki ürünler, siparişler ve müşteri hesapları; bir blogdaki yazılar ve yorumlar hep bir veritabanında tutulur. Veritabanlarını yöneten yazılımlara VTYS / DBMS (Veritabanı Yönetim Sistemi) denir; MySQL, PostgreSQL, SQLite ve MongoDB en bilinenleridir.
Veritabanı Türleri
İlişkisel (SQL) veritabanları
Veriler tablolarda (satır ve sütun) tutulur; tablolar arasında ilişkiler kurulur. Sorgular SQL diliyle yazılır:
SELECT ad, email FROM musteriler WHERE sehir = 'İstanbul';
Örnekler: MySQL, MariaDB, PostgreSQL, SQLite.
NoSQL veritabanları
Esnek yapılar kullanır: belge (JSON benzeri), anahtar-değer, grafik vb. Şeması sık değişen veya çok büyük ölçekte dağıtık çalışması gereken uygulamalarda tercih edilir. Örnekler: MongoDB (belge), Redis (anahtar-değer, önbellek).
MySQL, PostgreSQL, SQLite ve MongoDB Karşılaştırması
| MySQL / MariaDB | PostgreSQL | SQLite | MongoDB | |
|---|---|---|---|---|
| Tür | İlişkisel | İlişkisel (gelişmiş) | İlişkisel, tek dosya | Belge tabanlı NoSQL |
| Güçlü yanı | Yaygınlık, WordPress/WooCommerce | Veri bütünlüğü, gelişmiş özellikler, JSON desteği | Kurulum gerektirmez | Esnek şema |
| Tipik kullanım | Web siteleri, CMS'ler | SaaS, finans, analitik, modern uygulamalar | Mobil, masaüstü, küçük uygulamalar | Hızla değişen veri yapıları |
| Sunucu gerekir mi? | Evet | Evet | Hayır (dosya) | Evet |
Hangisini seçmeliyim? WordPress ve benzeri CMS'ler için MySQL/MariaDB; yeni bir uygulama geliştiriyorsanız çoğu durumda PostgreSQL; tek kullanıcılı veya küçük uygulamalar için SQLite iyi bir başlangıçtır.
Veritabanını Nerede Barındırmalı?
| Seçenek | Artıları | Eksileri |
|---|---|---|
| Uygulamayla aynı sunucu | Basit, düşük gecikme, ek maliyet yok | Kaynaklar paylaşılır; tek hata noktası |
| Ayrı veritabanı sunucusu | Performans ve güvenlik yalıtımı | Ek sunucu ve yönetim |
| Yönetilen veritabanı hizmeti | Yedek, güncelleme, ölçekleme hazır | Daha yüksek maliyet |
Küçük ve orta ölçekli projelerin çoğu için uygulamayla aynı VPS üzerinde çalışan bir veritabanı yeterlidir; önemli olan NVMe disk, yeterli RAM ve düzenli yedektir.
Ubuntu'ya MySQL (MariaDB) veya PostgreSQL Kurulumu
# MariaDB (MySQL uyumlu)
apt install -y mariadb-server
mysql_secure_installation
# PostgreSQL
apt install -y postgresql
sudo -u postgres psql
Alternatif olarak veritabanını Docker konteyneri olarak da çalıştırabilirsiniz.
Veritabanı Güvenliği
- Portu internete açmayın: MySQL (3306) ve PostgreSQL (5432) yalnızca yerel ağdan erişilebilir olmalı (bkz. Firewall Nedir?). Uzaktan yönetim için SSH tüneli kullanın.
- Her uygulamaya ayrı kullanıcı ve yalnızca gerekli yetkiler verin; uygulamayı
rootveritabanı kullanıcısıyla çalıştırmayın. - Güçlü şifreler ve güncel sürümler kullanın.
- Düzenli yedek:
mysqldump/pg_dumpile günlük yedek alın ve başka bir konumda saklayın (bkz. Yedekleme Nedir?). - Uygulama kodunda parametreli sorgular kullanarak SQL enjeksiyonunu önleyin.
Performans İpuçları
- Sık sorgulanan sütunlara indeks ekleyin.
- Yavaş sorguları loglayıp inceleyin (
slow_query_log,pg_stat_statements). - Veritabanına yeterli RAM ayırın; çalışan veri kümesi bellekte kalmalıdır.
- Sık okunan verileri Redis ile önbelleğe alın.
Sıkça Sorulan Sorular
Veritabanı nedir?
Veritabanı, verilerin düzenli, hızlı erişilebilir ve güvenli şekilde saklandığı sistemdir. Web sitelerindeki ürünler, siparişler, kullanıcılar ve içerikler veritabanında tutulur.
MySQL ile PostgreSQL arasındaki fark nedir?
İkisi de ilişkisel veritabanıdır. MySQL yaygınlığı ve WordPress gibi CMS'lerle uyumu ile öne çıkar; PostgreSQL ise veri bütünlüğü, gelişmiş sorgu özellikleri ve JSON desteğiyle modern uygulamalarda tercih edilir.
SQL nedir?
SQL (Structured Query Language), ilişkisel veritabanlarında veri sorgulamak, eklemek, güncellemek ve silmek için kullanılan standart dildir.
MongoDB nedir?
MongoDB, verileri JSON benzeri belgeler hâlinde saklayan belge tabanlı bir NoSQL veritabanıdır. Şeması sık değişen uygulamalarda esneklik sağlar.
Veritabanı portu dışarıya açılmalı mı?
Hayır. MySQL (3306) veya PostgreSQL (5432) portları internete açılmamalı; veritabanına yalnızca yerel ağdan veya SSH tüneli üzerinden erişilmelidir.
Etiketler
Veritabanınız İçin Hızlı NVMe Sunucu
NVMe SSD, size ayrılmış RAM, root erişimi ve snapshot. TL ile ödeme, Türkçe destek. En uygun paket: aylık ₺709 (KDV dahil).