Kısaca MySQL Nedir?

MySQL, Oracle tarafından geliştirilen ve desteklenen açık kaynak kodlu bir SQL ilişkili veritabanı yönetim sistemidir.

Bu kısa cümle aslında MySQL nedir sorusuna cevap verebilmektedir. Ancak bunu biraz daha açıklayıcı bir terim olarak anlatmakta fayda olduğunu düşünüyorum.

Bir veritabanı, kolay kullanım ve erişim için düzenlenmiş, yapılandırılmış bir veri topluluğudur. Bir WordPress sitesi için, bu "veri", blog yayınlarına ait metin, sitenizdeki tüm kayıtlı kullanıcıların için bilgiler, otomatik yüklü veriler, önemli ayar yapılandırmaları vb. şeyler olabilecektir.

MySQL, bu verileri sizin için depolayabilen ve yönetebilen popüler bir sistemdir. Ayrıca MySQL, WordPress siteleri için kullanılan en popüler veritabanı çözümlerinden biridir.

Detaylıca MySQL Nedir?

MySQL ilk olarak 1995 yılında başlatılmış bir projedir. O zamandan beri mülkiyet ve idare konusunda birkaç değişiklikler yaşamıştır. Son olarak 2010 yılında Oracle Corporation tarafından ele alınmıştır. Şu anda Oracle tarafından kontrol edilse bile açık kaynak kodlu bir yazılımdır. Bu, onu serbestçe kullanabileceğiniz ve değiştirebileceğiniz anlamına gelmektedir.

Bu isim, projenin kurucusu olan kişinin kızın adı "My" ile yapısal sorgu dili anlamına gelen Structured Query Language (SQL) kelimelerinin birleşimden gelmektedir. SQL, ilişkisel veritabanı içerisinde yer alan verilere erişme ve onları yönetme imkanı sunan bir programlama dilidir.

MySQL'in nasıl çalıştığını banlamak için onunla bağlantılı iki kavramı bilmek çok önemlidir:

  • İlişkili veritabanı
  • İstemci-sunucu modeli

İlişkisel Veritabanları

Bir veritabanı içerisinde veri depolamak söz konusu olduğunda kullanabileceğiniz farklı yaklaşımlar vardır.

MySQL, ilişkisel veritabanı adı verilen bir yaklaşımı seçer. İlişkisel bir veritabanında, verileriniz her şeyi büyük bir depolama birimine atmak yerine, tablo adı verilen birden fazla depolama alanına bölünür.

Örneğin, iki tür bilgi depolamak istediğinizi düşünelim:

  • Müşteriler: Adları, adresleri ve diğer detaylar vb.
  • Siparişler: Hangi ürünlerin satın alındığı, fiyatın, siparişi veren kişi vb.

Tüm bu verileri büyük bir tencereye toplama çalıştıysanız aşağıdaki gibi birkaç probleminiz olacaktır:

  • Farklı veriler: Bir sipariş için toplamanız gereken veriler bir müşterinin verilerinden farklı olabilir.
  • Yenilenen veriler: Her müşterinin bir adı vardır ve her siparişin de bir müşteri adı vardır. Bu yinelenen verileri kullanmak karışıklığa neden olabilir.
  • Düzenin olmaması: Sipariş bilgilerini müşteri bilgilerine güvenli bir şekilde bağlamanız gerekir.

Bu sorunları çözmek için ilişkisel bir veritabanı müşteriler için ayrı bir tablo ve siparişler için ayrı bir tablo kullanır. Bununla birlikte, muhtemelen "Bana Timur Demir için tüm siparişleri göster" diyebilirsiniz. İlişkisel kısmın devreye girdiği yer burasıdır.

"Anahtar" adı verilen bir şey kullanarak, bu iki tablodaki verileri bir araya getirebilir ve böylece verileri gerektiği gibi farklı tablolarda düzenleyebilir ve birleştirebilirsiniz. Bir anahtarın müşterinin adı olmadığını unutmamak önemlidir. Bunun yerine, sayısal bir kimlik numarası gibi %100 benzersiz bir şey kullanırsınız.

WordPress sitenizin veritabanına bir göz attığınız zaman bu ilişkisel modelin kullanıldığını ve tüm verilerinizin ayrı tablolara bölündüğünü görürsünüz. Varsayılan olarak, WordPress 12 ayrı tablo kullanır. Ancak birçok WordPress eklentisi de kendi tablolarını ekleyecektir. Örneğin, bir WordPress sitesinin 40 ayrı tablosu olabilecektir.

Bu ilişkisel durumu daha iyi anlatmak için WordPress üzerinden bir örnek verebilirim. WordPress blog yazılarını wp_posts tablosunda ve kullanıcıları wp_users tablosunda depolar. Ancak, bu iki tablo bir anahtarla birbirine bağlı olduğu için her kullanıcı hesabını, her kullanıcının yazdığı tüm blog yayınlarına bağlama şansınız olacaktır.

Her yazıya benzersiz bir tanımlayıcı numara olan bir post_author atayabilirsiniz. Anahtar olarak bahsedilen şey tam olarak budur.

Ardından, hangi kullanıcı hesabının bu sayıya karşılık geldiğini görmek istiyorsanız wp_users tablosunda kimliğe göz atabilirsiniz.

Anahtar yani kimlik numarası her şeyi birbirine bağlayan şeydir. Veriler ayrı tablolarda saklansa bile birbirleriyle bağlantılı olma biçimleri bu şekildedir.

İstemci-Sunucu Modeli

İlişkisel bir veritabanı sistemi olmasının ötesinde MySQL ayrıca istemci-sunucu modeli denilen bir şey kullanmaktadır.

Sunucu kısmı, verilerinizin gerçekten bulunduğu yerdir. Bu verilere erişmek için yine de onları çağırmanız gerekmektedir. İstemci işte bu noktada devreye girmektedir.

Daha önce belirttiğim gibi programlama dili olan SQL kullanarak, istemci, müşterinin ihtiyaç duyduğu veriler için veritabanı sunucusuna bir istek göndermektedir.

Örneğin, birisi sitenizdeki bir blog gönderisini ziyaret ederse, WordPress siteniz blog gönderisini o ziyaretçinin web tarayıcısına iletmesi için gereken tüm bilgileri almak için veritabanı sunucusuna birden fazla SQL isteği gönderebilecektir:

  • Blog yazısı içeriğini almak için wp_posts tablosunu sorgula
  • Yazar kutusu hakkında bilgi almak için wp_users tablosunu sorgula

WordPress siteniz tarafından ne tür veritabanı istekleri yapıldığını tam olarak görmek istiyorsanız, WordPress siteniz (istemci) ile veritabanı sunucusu arasındaki etkileşimi görmek için Query Monitor adını taşıyan tamamen ücretsiz olan bir eklentiyi kullanabilirsiniz.

Premium bir çözüm arıyorsanız New Relic aracını kullanabilirsiniz. Birçok WordPress site sahibi veya site geliştiricisi MySQL sorgusu nedeniyle oluşabilecek performans sorunlarını gidermek için bu aracı kullanabilmektedir.

MySQL ve MariaDB Farkı Nedir?

Kendini ispatlamış olan birçok WordPress site geliştiricisi MySQL yerine MariaDB kullanmaktadır. Bu veritabanı sistemi MySQL'de yer alan özelliklerin tamamını kapsamaktadır. MariaDB aslında MySQL'in içerisinde çıkma bir sistemdir. MariaDB'nin baş geliştiricisi MySQL'in orijinal kurucularından biridir. Sadece MySQL'in açık kaynak kodu temel alınmış ve bir veritabanı sistemi geliştirilmiştir.

Bu nedenle, farklı bir isme sahip olmasına rağmen MariaDB, MySQL ile sıkı bir şekilde bağlantılıdır. Bu nedenle tam anlamıyla eksiksiz olabilecek bir değiştirme özelliği sunmaktadır. Özetle, herhangi bir sorun yaşamadan MySQL'den MariaDB'ye sorunsuz bir şekilde geçiş yapabilirsiniz.

Bununla birlikte, MariaDB, WordPress sitenizi güçlendirmek için en iyi performansı ortaya koyan mimariyi oluşturma konusunda bazı alanlarda gelişmiş performanslar sunabilmektedir. Bu nedenle birçok iyi WordPress geliştiricisi MariaDB kullanmayı tercih etmektedir.

Sonuç

MySQL açık kaynaklı bir ilişkisel veritabanı yönetim sistemidir. WordPress siteleri için bu, tüm blog yayınlarınızı, kullanıcılarınızı, eklenti bilgilerinizi vb. saklamanıza yardımcı olacaktır. MySQL bilgiyi ayrı tablolarda saklar ve anahtarlarla birbirine bağlar. Bu yüzden ilişkiseldir. WordPress sitenizin bu bilgilere erişmesi gerektiğinde, SQL kullanarak MySQL veritabanı sunucusuna bir istek göndermektedir. Bu istemci-sunucu modelini göstermektedir.

Yazar Hakkında

Timur Demir
Timur Demir Ben Timur Demir, 1991 Muğla doğumluyum. Evliyim ve Muğla'nın Dalaman ilçesinde yaşıyorum. 2013 yılından bu yana blog yazarlığı ve son 1 yıldır blog danışmanlığı yapıyorum. Yazara Ait Tüm Yazılar »

Yorum Yap