Kayıt ol Giriş yap +90 212 706 73 93

Web Hosting MySQL: Shared, VPS ve Managed DBaaS Karşılaştırması


PHP ve MySQL ikilisi, web geliştirme dünyasının iki on yıldır en yaygın stack’idir. WordPress, WooCommerce, Magento, Laravel ve sayısız özel uygulama bu kombinasyon üzerine inşa edilmiştir. Ancak web hosting MySQL kararını verirken artık tek bir seçeneğiniz yok — shared hosting, kendi yönettiğiniz VPS veya tamamen yönetilen DBaaS arasından seçim yapmanız gerekiyor. Bu rehberde üç yaklaşımı karşılaştırıyor, hangisinin sizin senaryonuza uygun olduğunu, gerçek performans rakamlarını ve neden ölçek büyüdükçe DBaaS’a geçmenin kaçınılmaz olduğunu anlatıyoruz.

Web hosting MySQL nedir?

Web hosting MySQL, web sitenizin veya uygulamanızın veritabanını çalıştırmak için MySQL sunucusunu sağlayan bir hizmettir. En temel haliyle bir veya birden fazla MySQL veritabanı oluşturma, kullanıcı tanımlama ve uygulamanızın connection string ile bağlanmasını mümkün kılar.

PHP + MySQL stack’in tarihsel önemi

LAMP (Linux + Apache + MySQL + PHP), açık kaynak web ekosisteminin temel taşı oldu. WordPress’in dünyanın en yaygın CMS’i olması, bu stack’in pratikte ne kadar olgun olduğunu gösterir.

WordPress, Magento, Laravel için tipik gereksinimler

Uygulama Min. RAM Min. CPU DB boyutu Aylık trafik
WordPress (blog) 512 MB 1 vCPU <1 GB <50K
WooCommerce 2 GB 2 vCPU 1-10 GB 50-500K
Magento 4 GB 4 vCPU 5-50 GB 100K-1M
Laravel SaaS 4 GB+ 4 vCPU+ 5-100 GB 100K+

Üç farklı yaklaşım: hangisi size uygun?

Shared hosting (cPanel + MySQL)

En ekonomik seçenek. cPanel veya benzeri panel üzerinden tıklayarak MySQL DB oluşturur, phpMyAdmin ile yönetirsiniz. Ancak CPU/RAM paylaşımlı, max DB boyutu sınırlı (genelde 1-2 GB), connection sayısı sıkı kısıtlı. WordPress küçük blog için yeterli, e-ticaret ölçeğinde yetersiz.

VPS / Cloud Server üzerinde self-managed MySQL

Bir cloud server kiralar, MySQL’i kendiniz kurar ve yönetirsiniz. Tam kontrol vardır — versiyon, ayarlar, eklentiler hepsi sizin elinizde. Ama backup, monitoring, güvenlik yamaları, replikasyon — hepsi sizin sorumluluğunuzdadır. Tipik küçük takım için bu haftada 5-10 saatlik sürekli yük demektir. dedicated sunucu kiralama rehberimizde altyapı seçimini detaylandırıyoruz.

Managed Database as a Service (DBaaS)

DBaaS, MySQL sunucusunu sağlayıcı tarafından yönetilen halde sunar. Otomatik yedekleme, otomatik patch, HA (master-slave replikasyon), point-in-time recovery, monitoring dashboard — hepsi dahildir. Siz yalnızca DB’ye bağlanıp uygulamanızı geliştirirsiniz.

MySQL hosting seçerken kritik kriterler

MySQL sürümü ve uyumluluk (5.7, 8.0, MariaDB)

MySQL 5.7 desteğini 2023’te resmi olarak sonlandırdı. 2026 itibariyle 8.0 minimum standarttır. MariaDB 10.6+ uyumluluk istiyorsanız sağlayıcının iki seçeneği de sunduğundan emin olun.

Veritabanı boyutu ve sorgu performansı

DB 10 GB üzerine çıktığında shared hosting çoğu zaman performans düşürür. NVMe SSD’li ve dedicated I/O kanalları olan DBaaS veya VPS bu noktada gereklidir.

Yedekleme ve point-in-time recovery

Günlük yedekleme minimumdur. Production iş yükleri için point-in-time recovery (her dakikaya geri dönebilme) zorunludur — kritik veri kaybı senaryolarında saatler değil dakikalar kaybedersiniz. Detaylı backup stratejisi için bulut yedekleme rehberimizi okuyun.

Yüksek erişilebilirlik (HA) ve read-replica

Tek bir MySQL instance = tek noktasal arıza. Master-Slave replikasyonu otomatik failover ile sağlamak self-managed’da haftalar sürer; DBaaS’ta tek tıklama. Tam felaket kurtarma planı için felaket kurtarma rehberimize bakın.

Yönetim arayüzleri (phpMyAdmin, MySQL Workbench)

Web tabanlı (phpMyAdmin) veya desktop (MySQL Workbench, DBeaver) erişim. SSH tunnel ile güvenli bağlantı standart olmalıdır.

Performans karşılaştırması (gerçek benchmark)

Standart sysbench OLTP read-write testi, 16 core / 64 GB / NVMe konfigürasyonunda:

Senaryo TPS (transactions/sec) P95 latency
Shared hosting (paylaşımlı) 200-500 50-150 ms
VPS self-managed (default config) 1.500-3.000 15-30 ms
VPS self-managed (tuned) 5.000-8.000 8-15 ms
Cloud4U DBaaS (managed) 6.000-10.000 5-12 ms
Cloud4U DBaaS (HA replica okuma) 12.000-18.000 4-10 ms

Managed DBaaS, VPS self-managed’a benzer veya daha iyi performans sağlar; üstelik sizden tuning bilgisi gerektirmez.

Performans optimizasyonu için en iyi uygulamalar

InnoDB buffer pool ayarları

Toplam RAM’in %60-70’ini innodb_buffer_pool_size parametresine ayırın. DBaaS sağlayıcıları bunu otomatik ayarlar; self-managed senaryosunda manuel ayarlama gerekir.

Slow query log ve indeks optimizasyonu

long_query_time = 1 ile yavaş sorguları logla, EXPLAIN ile incele, gerekli indeksleri ekle. DBaaS dashboard’larında bu süreç görsel olarak otomatize edilir.

Connection pooling ve PHP-MySQL persistent bağlantı

Yüksek trafikte connection pool (PgBouncer benzeri ProxySQL) ekleyin. PHP mysqli_pconnect veya Laravel database persistent bağlantısı ile gereksiz handshake azaltın.

Güvenlik ve KVKK uyumluluğu

At-rest ve in-transit şifreleme

DB diskinin AES-256 şifrelenmesi ve uygulamadan DB’ye TLS bağlantı 2026’da temel beklentidir.

IP whitelist ve VPN bağlantısı

DB sunucunuza yalnızca uygulamanın çalıştığı IP’ler bağlanabilmelidir. Public internete açık DB = otomatik güvenlik ihlali.

Yetkilendirme: principle of least privilege

Her uygulama için ayrı DB user, ayrı şifre, sadece gerekli yetki. Root user uygulamadan asla kullanılmamalıdır.

Self-managed MySQL’den DBaaS’a geçiş

Mysqldump ve replikasyon ile geçiş

Küçük DB için mysqldump | mysql yeterli; büyük DB için replikasyon ile online geçiş (yeni DBaaS instance’ı eski master’a slave bağlanır, sıfır kesintiyle cutover yapılır).

Connection string güncellemeleri

Yeni hostname/port’a application config güncellemesi tek hareket. DBaaS sağlayıcılar genelde DNS-based connection sağlar, IP değişiklikleri uygulamanızı etkilemez.

Mini case study: 25 GB WooCommerce DB geçişi

Bir Türk e-ticaret operatörü, 25 GB WooCommerce veritabanını shared hosting’den (her sezon kampanyada %10 sipariş kaybı yaşıyordu) Cloud4U DBaaS’a taşıdı.

  • Geçiş süresi: 4 saat (replikasyon ile + 5 dk cutover)
  • Sayfa yükleme süresi (P95): 4.2s → 0.9s
  • Maksimum eşzamanlı kullanıcı: 250 → 2.500
  • Pik sezonda kayıp sipariş: %10 → %0.3
  • Aylık altyapı maliyeti: 800 TL → 1.400 TL (artış); ek aylık satış: ~120.000 TL

ROI ilk haftada pozitif.

MySQL tuning parametreleri detaylı

Production MySQL için kritik parametreler ve önerilen değerler (32 GB RAM sunucu için):

# /etc/mysql/my.cnf
[mysqld]
# InnoDB
innodb_buffer_pool_size = 24G          # %75 RAM
innodb_log_file_size = 2G              # Yüksek yazma için büyük
innodb_flush_log_at_trx_commit = 1     # ACID için 1, hız için 2
innodb_flush_method = O_DIRECT          # Çift cache'leme önler
innodb_io_capacity = 2000              # NVMe için
innodb_io_capacity_max = 4000

# Connection
max_connections = 500                   # ProxySQL ile 1000+
thread_cache_size = 100
table_open_cache = 4000

# Query cache (MySQL 5.7'de var, 8.0'da kaldırıldı)
query_cache_type = OFF                  # Yüksek yazma için
query_cache_size = 0

# Slow query log
slow_query_log = 1
long_query_time = 1
log_queries_not_using_indexes = 1

# Binary log (replikasyon için)
log_bin = mysql-bin
binlog_format = ROW
expire_logs_days = 7
sync_binlog = 1

Replikasyon kurulum örneği

Master-Slave HA için minimal kurulum:

-- Master sunucuda
CREATE USER 'replicator'@'%' IDENTIFIED BY 'gucluParola2026';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
SHOW MASTER STATUS;
-- File: mysql-bin.000001, Position: 12345

-- Slave sunucuda
CHANGE MASTER TO
  MASTER_HOST='master.cloud4u.com.tr',
  MASTER_USER='replicator',
  MASTER_PASSWORD='gucluParola2026',
  MASTER_LOG_FILE='mysql-bin.000001',
  MASTER_LOG_POS=12345;
START SLAVE;
SHOW SLAVE STATUS\G
-- Slave_IO_Running: Yes / Slave_SQL_Running: Yes / Seconds_Behind_Master: 0

DBaaS’ta bu süreç tek tıkla — Cloud4U dashboard’da “Add read replica” butonuyla halledilir.

WordPress için optimal MySQL konfigürasyonu

WooCommerce + 50.000 ürün için tipik tuning:

-- Object cache için Redis ekle (wp-config.php)
define('WP_REDIS_HOST', 'redis.cloud4u.com.tr');
define('WP_REDIS_PORT', 6379);
define('WP_CACHE_KEY_SALT', 'sirketiniz_');

-- Sık silinen tabloları indeksle (WooCommerce)
ALTER TABLE wp_woocommerce_order_itemmeta ADD INDEX (meta_key(20));
ALTER TABLE wp_postmeta ADD INDEX (meta_key(20), meta_value(50));

-- Eski revisions ve auto-drafts temizle
DELETE FROM wp_posts WHERE post_status = 'auto-draft';
DELETE FROM wp_posts WHERE post_type = 'revision';
OPTIMIZE TABLE wp_posts, wp_postmeta;

Bu basit optimizasyonlar tipik WooCommerce sitesinde sayfa yükleme süresini %40-60 düşürür.

Migration runbook: shared → DBaaS

Adım adım geçiş şablonu:

Hazırlık (1 hafta önce)

  1. DBaaS instance provision et (Cloud4U dashboard’dan ~5 dk)
  2. MySQL sürüm uyumluluğu doğrula (SELECT VERSION();)
  3. Application config dosyasında DB hostname için değişken hazırla
  4. Maintenance window planla (genelde gece 02:00-04:00)

Cutover gecesi

  1. Application’ı maintenance mode’a al
  2. Final mysqldump (mysqldump --single-transaction --master-data=2 db_name > final.sql)
  3. DBaaS’a import (mysql -h dbaas.cloud4u.com.tr -u admin -p < final.sql)
  4. Application config güncellemesi
  5. Smoke test (login, sipariş oluştur, ödeme)
  6. Maintenance mode kapat
  7. Trafik gözlem (1 saat)

Sonrası (1 hafta)

  • Eski shared hosting’i 30 gün açık tut (rollback için)
  • Yeni DB performans monitoring
  • Backup ve restore testi

Connection pooling: ProxySQL kurulumu

Yüksek connection sayısı için ProxySQL middleware:

apt install proxysql
mysql -u admin -padmin -h 127.0.0.1 -P 6032 -e "
INSERT INTO mysql_servers(hostgroup_id, hostname, port)
  VALUES (10, 'dbaas.cloud4u.com.tr', 3306);
INSERT INTO mysql_users(username, password, default_hostgroup)
  VALUES ('app_user', 'app_password', 10);
LOAD MYSQL SERVERS TO RUNTIME;
LOAD MYSQL USERS TO RUNTIME;
SAVE MYSQL SERVERS TO DISK;
SAVE MYSQL USERS TO DISK;
"

Application 100 connection açar, ProxySQL 10 backend connection kullanır — DB üzerindeki yük dramatik düşer.

Cloud4U Türkiye Hizmet Olarak Veritabanı

Otomatik yedekleme, HA ve scaling dahil managed MySQL

Cloud4U Türkiye Hizmet Olarak Veritabanı, MySQL ve PostgreSQL’i tam yönetilen olarak sunar. Otomatik günlük yedekleme, point-in-time recovery (7-30 gün arası retention), Master-Slave HA, otomatik failover ve dikey/yatay scaling standart olarak gelir.

Türkiye veri merkezi ve teknik destek

Veriler Türkiye’deki veri merkezimizde KVKK uyumlu olarak saklanır. Web hosting MySQL ihtiyacınız küçük WordPress’ten kurumsal e-ticaret seviyesine geldiğinde, geçişi yumuşak yapmak için ücretsiz danışmanlık ve POC sağlıyoruz.

SSS

Shared hosting WordPress için yeterli mi?

Aylık <50K trafiği olan kişisel blog veya küçük site için evet. WooCommerce veya yüksek trafik için değil — performans ve esneklik kısıtlı.


Self-managed MySQL kurmak ne kadar sürer?

Temel kurulum 1 saat. Production-ready optimizasyon, monitoring, backup, HA kurulumu 2-4 hafta + sürekli bakım yükü.


DBaaS sürüm seçimi sınırlı mı?

Çoğu DBaaS sağlayıcısı MySQL 5.7, 8.0, MariaDB 10.x sunar. Daha eski versiyon için self-managed gerekir.


Read replica ne işe yarar?

Okuma sorgularını ana DB’den ayırarak yükü dağıtır ve failover anında yedek görevi görür. Raporlama ve analytics workload’ları için ideal.


MySQL’i PostgreSQL ile değiştirmeli miyim?

İhtiyaca bağlı. PostgreSQL bazı özelliklerde (JSONB, advanced queries, GIS) öne çıkar. WordPress / Magento gibi MySQL-only uygulamalarda zorunluluk yok.


Backup’ı saatlik almak çok mu sıkı?

Production e-ticaret için saatlik backup + transaction log = standart. Point-in-time recovery 7-30 gün retention ile birlikte kritik.


Connection limit dolarsa ne olur?

Yeni bağlantılar reddedilir, uygulama “too many connections” hatası alır. ProxySQL veya connection pool çözüm — DBaaS otomatik yönetir.



Bu size yardımcı oldu mu?
0
0
Diğer Haberler
Scroll up!