MySQL; 1995’te başlamış, 2008’de Sun (sonra Oracle) tarafından satın alınmış, web ekosisteminin yıllarca temel direği olan açık-kaynak ilişkisel veritabanı sistemidir. MariaDB, MySQL’in orijinal yaratıcısı Monty Widenius tarafından 2009’da topluluk tabanlı bir fork olarak başlatılmış; bugün tamamen açık-kaynak, daha hızlı sürüm kadansı ve Galera Cluster gibi yerleşik özellikleriyle kurumsal kullanımda öne çıkıyor.
LAMP yığını, WordPress / Magento / Moodle gibi onlarca olgun açık-kaynak uygulamasının tercih ettiği veritabanı olduğu için yetenekli operatör havuzu büyük; modern özellikler (window functions, CTE, JSON tipi) son sürümlerde gelmiş olsa da ekosistem geçmişin teknik borcunu hâlâ taşır.
Mono’nun yaklaşımı
Mono müşterilerimizin %70’i yeni projelerde PostgreSQL’e geçiyor; mevcut MariaDB/MySQL kurulumları için ise:
- Versiyon: MariaDB 10.11 LTS veya 11.4 LTS (yeni); MySQL tarafında 8.0 LTS.
- HA: MariaDB Galera Cluster (3 veya 5 node) veya primary-replica + ProxySQL/HAProxy.
- Replication: GTID-based (manual binlog koordinatları yerine); semi-sync kritik veri için.
- Yedekleme: mariabackup/xtrabackup + binlog; pgBackRest dengi olmasa da operatör scripti + S3.
- Connection pooling: ProxySQL (read/write split + query cache + sharding hazırlığı). Uygulama tarafı her zaman pool kullanır.
- Karakter seti:
utf8mb4+utf8mb4_0900_ai_ci(MySQL) veyautf8mb4_unicode_ci(MariaDB). Eskiutf8(3-byte) kabul edilemez.
Tipik üretim mimarisi
Mono’nun standart kurulumu:
- Uygulama → ProxySQL (read/write split, query cache).
- ProxySQL → MariaDB cluster (Galera 3 node veya primary + 2 replica).
- mariabackup ile günlük + binlog retention; off-site S3.
- Read replica raporlama/analitik (ana cluster’dan ayrı).
- PMM (Percona Monitoring) veya mysqld_exporter + Grafana.
Yaygın sorunlar ve çözümler
- Yavaş ALTER TABLE: Online DDL kullanın (
ALGORITHM=INPLACE, LOCK=NONE); büyük tablolarda gh-ost veya pt-online-schema-change. Too many connections: ProxySQL ile pool; uygulama tarafıidle_timeout‘u kısalt.- Replication lag: Single-threaded SQL thread bottleneck. Parallel replication (slave_parallel_workers > 0) veya GTID + multi-source.
- InnoDB log dolması:
innodb_log_file_sizeartırılır (24h veri büyüklüğüne uygun). - Yavaş sorgular:
slow_query_log+ pt-query-digest ile profil; explain plan + index önerileri.