MySQL Nedir? Veritabanı Yönetimi ve Web Sitelerindeki Rolü

Bir web sitesini ziyaret ettiğinizde gördüğünüz yazılar, ürünler, kullanıcı hesapları ve yorumların tamamı bir yerde depolanmak zorundadır. Bu "yer" çoğu zaman MySQL veritabanıdır. Dünyanın en yaygın kullanılan açık kaynaklı veritabanı yönetim sistemi olan MySQL, WordPress'ten büyük e-ticaret platformlarına kadar milyonlarca web sitesinin veri omurgasını oluşturur.

Bu rehberde MySQL'in ne olduğunu, nasıl çalıştığını, web sitelerindeki kritik rolünü ve hosting performansıyla ilişkisini kapsamlı biçimde ele alıyoruz.

MySQL Nedir?

MySQL, İsveçli yazılım şirketi MySQL AB tarafından 1995 yılında geliştirilen açık kaynaklı ilişkisel veritabanı yönetim sistemidir (RDBMS). 2010 yılından bu yana Oracle Corporation tarafından geliştirilmeye devam etmektedir.

İlişkisel veritabanı; verilerin tablolar halinde organize edildiği, tablolar arasında ilişkiler kurulabildiği ve bu verilerin SQL (Structured Query Language) diliyle sorgulandığı veritabanı modelidir.

MySQL bugün dünyada en yaygın kullanılan açık kaynaklı veritabanı yönetim sistemidir. Facebook, Twitter, YouTube ve Wikipedia gibi dev platformlar MySQL'i veritabanı altyapısı olarak kullanmaktadır ya da geçmişte kullanmıştır.

MySQL Nasıl Çalışır?

MySQL bir istemci-sunucu (client-server) mimarisi üzerine kuruludur:

MySQL Sunucusu: Verilerin depolandığı ve yönetildiği merkezi yapıdır. Sürekli çalışır ve gelen sorguları bekler.

MySQL İstemcisi: Sunucuya bağlanarak veri okuma, yazma, güncelleme ve silme işlemlerini gerçekleştiren uygulama veya araçtır. Web uygulaması, phpMyAdmin veya komut satırı aracı istemci rolünü üstlenebilir.

SQL (Structured Query Language): MySQL ile iletişim kurmak için kullanılan sorgulama dilidir. Veri okumak, yazmak, güncellemek ve silmek için farklı SQL komutları kullanılır.

Temel SQL Komutları

MySQL ile yapılabilecek temel işlemler dört komut kategorisine ayrılır — bu dört işlem birlikte CRUD olarak adlandırılır:

SELECT — Veri okuma:
Veritabanından veri sorgulamak için kullanılır.

sql

SELECT * FROM wp_posts WHERE post_status = 'publish';

INSERT — Veri ekleme:
Tabloya yeni kayıt eklemek için kullanılır.

sql

INSERT INTO wp_users (user_login, user_email) VALUES ('ahmet', '[email protected]');

UPDATE — Veri güncelleme:
Mevcut kaydı güncellemek için kullanılır.

sql

UPDATE wp_posts SET post_title = 'Yeni Başlık' WHERE ID = 1;

DELETE — Veri silme:
Tablodan kayıt silmek için kullanılır.

sql

DELETE FROM wp_comments WHERE comment_approved = 'spam';

MySQL Veritabanı Yapısı

MySQL'de veriler hiyerarşik bir yapıda organize edilir:

Veritabanı (Database): En üst düzey kapsayıcıdır. Bir MySQL sunucusunda birden fazla veritabanı bulunabilir. Her web sitesi genellikle kendi veritabanını kullanır.

Tablo (Table): Veritabanı içindeki veri yapısıdır. Excel tablosuna benzetebilirsiniz — satırlar ve sütunlardan oluşur.

Sütun (Column/Field): Tablodaki veri kategorisidir. Örneğin wp_posts tablosunda post_title, post_content, post_date gibi sütunlar bulunur.

Satır (Row/Record): Tablodaki tek bir veri kaydıdır. Her WordPress yazısı wp_posts tablosunda bir satır olarak saklanır.

İndeks (Index): Sorgu performansını artırmak için oluşturulan veri yapısıdır. Doğru indeksleme büyük tablolarda sorgu sürelerini dramatik biçimde kısaltır.

MySQL ve WordPress İlişkisi

WordPress tamamen MySQL üzerine inşa edilmiştir. Bir WordPress sitesi açıldığında arka planda onlarca MySQL sorgusu çalışır:

WordPress'in MySQL'de sakladığı veriler:

Tabloİçerik
wp_postsYazılar, sayfalar, medya
wp_usersKullanıcı hesapları
wp_commentsYorumlar
wp_optionsSite ayarları
wp_termsKategoriler ve etiketler
wp_postmetaYazı meta verileri
wp_usermetaKullanıcı meta verileri

WordPress hakkında daha fazla bilgi için WordPress nedir yazımıza bakabilirsiniz. MySQL veritabanı yönetimi WordPress performansını doğrudan etkiler — optimize edilmiş bir veritabanı sayfa yükleme sürelerini belirgin biçimde kısaltır.

phpMyAdmin Nedir?

phpMyAdmin, MySQL veritabanlarını web tarayıcısı üzerinden görsel arayüzle yönetmenizi sağlayan ücretsiz bir araçtır. Komut satırı bilgisi gerektirmeden veritabanı oluşturma, tablo düzenleme, veri görüntüleme ve SQL sorgusu çalıştırma işlemlerini yapabilirsiniz.

phpMyAdmin ile yapılabilecekler:

  • Yeni veritabanı ve tablo oluşturma
  • Mevcut verileri görüntüleme ve düzenleme
  • SQL sorguları çalıştırma
  • Veritabanını dışa aktarma (backup)
  • Veritabanını içe aktarma (restore)
  • Tablo optimizasyonu
  • Kullanıcı ve yetki yönetimi

phpMyAdmin'e nasıl erişilir:
cPanel → Veritabanları → phpMyAdmin bölümünden erişebilirsiniz. cPanel kullanımı hakkında cPanel nedir yazımıza bakabilirsiniz.

MySQL Performansı ve Hosting İlişkisi

MySQL performansı doğrudan hosting altyapısına bağlıdır. Yavaş bir MySQL, ne kadar iyi yazılmış PHP kodu veya iyi optimize edilmiş tema olursa olsun web sitenizi yavaşlatır.

Disk Teknolojisinin Etkisi

MySQL veritabanı dosyaları diskte saklanır. NVMe SSD disk, MySQL okuma/yazma işlemlerini standart SSD'lere kıyasla 5-6 kat daha hızlı gerçekleştirir. Bu fark özellikle büyük veritabanlarında ve yoğun sorgu yükünde belirgin biçimde hissedilir.

TuemCloud'un tüm hosting paketleri NVMe SSD altyapısı kullanır. Hosting performansının web hızına etkisi hakkında web sitesi neden yavaş yazımıza bakabilirsiniz.

MySQL Önbellekleme

MySQL sorgu sonuçlarının önbelleklenmesi veritabanı yükünü önemli ölçüde azaltır. Aynı sorgu tekrar çalıştırıldığında veritabanından okumak yerine önbellekten servis edilir. LiteSpeed Cache ve Redis gibi çözümler bu önbelleklemeyi otomatik yönetir.

Veritabanı Optimizasyonu

Zamanla şişen WordPress veritabanları sorgu sürelerini uzatır. Düzenli optimizasyon ile:

  • Gereksiz tablolar temizlenir
  • Tablo fragmantasyonu giderilir
  • İndeksler yeniden oluşturulur
  • Sorgu performansı iyileştirilir

WordPress için WP-Optimize eklentisi veritabanı optimizasyonunu otomatik hale getirir. WordPress hız optimizasyonu hakkında WordPress hız optimizasyonu yazımıza bakabilirsiniz.

MySQL ile Hosting Kurulumu

cPanel ile MySQL Veritabanı Oluşturma

WordPress veya başka bir web uygulaması kurarken MySQL veritabanı oluşturmanız gerekir:

  1. cPanel'e giriş yapın
  2. Veritabanları → MySQL Veritabanları bölümüne gidin
  3. Yeni veritabanı adı girin ve "Veritabanı Oluştur"a tıklayın
  4. Yeni kullanıcı oluşturun ve güçlü bir şifre belirleyin
  5. Kullanıcıyı veritabanına ekleyin ve "Tüm Ayrıcalıklar"ı verin
  6. Veritabanı adı, kullanıcı adı ve şifreyi not alın

Bu bilgileri WordPress kurulumu sırasında gireceksiniz.

MySQL Güvenliği

Veritabanı güvenliği web sitesi güvenliğinin temel bileşenlerinden biridir.

SQL Injection Saldırıları

En yaygın veritabanı güvenlik tehditlerinden biridir. Kötü niyetli kullanıcılar form alanlarına zararlı SQL kodları enjekte ederek veritabanına yetkisiz erişim sağlamaya çalışır.

Korunma yöntemleri:

  • Prepared statements (hazırlanmış sorgular) kullanın
  • Kullanıcı girdilerini her zaman doğrulayın ve filtreleyin
  • WordPress kullanıyorsanız güncel eklentiler bu korumaları otomatik sağlar

Güçlü Şifre Kullanımı

MySQL kullanıcı şifreleri güçlü olmalıdır. Tahmin edilebilir şifreler kaba kuvvet saldırılarına kapı açar.

Minimum Yetki Prensibi

Her veritabanı kullanıcısına yalnızca ihtiyaç duyduğu kadar yetki verin. Web sitesi için oluşturulan kullanıcının SELECT, INSERT, UPDATE, DELETE yetkisi yeterlidir — DROP TABLE gibi tehlikeli yetkiler verilmemeli.

Düzenli Yedekleme

Veritabanı yedekleme veri güvenliğinin temelidir. cPanel üzerinden manuel yedek alabilir veya UpdraftPlus gibi eklentilerle otomatik yedekleme kurabilirsiniz.

MySQL Alternatifleri

MySQL tek ilişkisel veritabanı seçeneği değildir. Diğer popüler seçeneklerle kıyaslayalım:

VeritabanıTürEn İyi Kullanım
MySQLİlişkiselWeb uygulamaları, WordPress
MariaDBİlişkisel (MySQL fork)MySQL yerine kullanılabilir
PostgreSQLİlişkiselKarmaşık sorgular, kurumsal
SQLiteİlişkiselKüçük uygulamalar, mobil
MongoDBNoSQLBelge tabanlı veriler
RedisNoSQL (önbellek)Oturum ve önbellek yönetimi

MariaDB Nedir?

MariaDB, MySQL'in açık kaynaklı bir çatallamasıdır (fork). MySQL ile tamamen uyumludur ve çoğu durumda birbirinin yerine kullanılabilir. Bazı hosting sağlayıcıları MySQL yerine MariaDB kullanır — WordPress dahil çoğu uygulama farkı fark etmez.

E-Ticaret Sitelerinde MySQL

E-ticaret siteleri MySQL'in en yoğun kullanıldığı ortamlardan biridir. Ürün kataloğu, stok takibi, sipariş yönetimi, müşteri verileri ve ödeme geçmişi MySQL tablolarında saklanır.

Binlerce ürün ve aktif sipariş akışına sahip WooCommerce mağazalarında MySQL performansı doğrudan dönüşüm oranını etkiler. Yavaş veritabanı sorguları sepet sayfasında ve ödeme adımında gecikmelere yol açar — bu gecikme müşteri kaybına dönüşür.

E-ticaret hosting gereksinimleri hakkında e-ticaret hosting nedir yazımıza bakabilirsiniz.

MySQL ve PHP İlişkisi

PHP ve MySQL, web geliştirmenin en köklü kombinasyonunu oluşturur. PHP, MySQL veritabanına bağlanarak veri okur, yazar ve günceller. Bu ikili birlikte WordPress, Joomla, Drupal ve sayısız web uygulamasının omurgasını oluşturur.

PHP hakkında daha ayrıntılı bilgi için PHP nedir yazımıza bakabilirsiniz.

Modern PHP uygulamalarında MySQL bağlantısı PDO (PHP Data Objects) veya MySQLi uzantısıyla gerçekleştirilir. Her ikisi de hazırlanmış sorgular (prepared statements) desteğiyle SQL injection saldırılarına karşı güvenli bağlantı sağlar.

Sonuç: MySQL Web'in Veri Omurgasıdır

MySQL, modern web sitelerinin görünmez ama vazgeçilmez altyapı bileşenidir. WordPress sitenizin yazıları, kullanıcı hesapları ve yorumları; e-ticaret mağazanızın ürünleri, siparişleri ve müşteri verileri — bunların tamamı MySQL veritabanında yaşar.

Bir web sitesi sahibi olarak MySQL hakkında bilmeniz gereken en önemli şey şudur: Hosting sağlayıcınızın NVMe SSD tabanlı, iyi optimize edilmiş MySQL altyapısı sunması, sitenizin hızını ve performansını doğrudan etkiler.

TuemCloud'un tüm hosting paketleri NVMe SSD altyapısı, optimize edilmiş MySQL yapılandırması ve cPanel üzerinden kolay veritabanı yönetimiyle gelir. Web hosting paketlerimizi inceleyin.