MariaDB ile MySQL Arasındaki Fark Nedir?

MySQL ve MariaDB, açık kaynaklı veritabanı teknolojileridir. Verileri satır ve sütunlarla tablo biçiminde depolamak için bunları kullanabilirsiniz. MySQL, en yaygın olarak benimsenen açık kaynaklı veritabanıdır. Ayrıca pek çok popüler web sitesi, uygulama ve ticari ürün için birincil ilişkisel veritabanıdır. MariaDB, MySQL'in değiştirilmiş bir sürümüdür. MariaDB, MySQL'in Oracle Corporation tarafından satın alınmasının ardından lisanslama ve dağıtım endişeleri nedeniyle MySQL'in ilk geliştirme ekibi tarafından oluşturulmuştur. Satın alma işleminden bu yana, MySQL ve MariaDB farklı şekilde gelişmiştir. Bununla birlikte MariaDB, MySQL'in veri ve tablo tanımlama dosyalarını benimser ve aynı zamanda aynı istemci protokollerini, istemci API'lerini, bağlantı noktalarını ve yuvaları kullanır. Buradaki amaç, MySQL kullanıcılarının sorunsuz bir şekilde MariaDB'ye geçiş yapmasını sağlamaktır.

MySQL hakkında bilgi edinin »

MariaDB ile MySQL arasındaki benzerlikler nelerdir?

MySQL, 1995 yılında piyasaya sürülen bir ilişkisel veritabanı yönetim sistemidir. 2009 yılında, geliştiriciler MariaDB'yi MySQL 5.1.38'in bir kod çatalı olarak piyasaya sürdü.

MariaDB, MySQL'den çatallaştırıldığı için iki ilişkisel veritabanı yönetim sisteminde birçok benzerlik vardır. Örneğin MariaDB, MySQL'in yapısını, adlandırma kurallarını ve veri tanımlama dosyalarını korumuştur. Ayrıca tüm MySQL bağlayıcılarını, bağlantılarını ve bağlantı noktalarını destekler. MySQL istemci paketiniz, değişiklik olmadan MariaDB ile çalışır.

Daha sonra, başka benzerliklerden de bahsedeceğiz.

ACID uyumluluğu

Bölünmezlik, tutarlılık, yalıtım ve dayanıklılık (ACID), veritabanı işlemlerinin güvenilirliğini sağlayan dört temel prensiptir. Hem MySQL hem de MariaDB bu prensipleri destekler. ACID ile uyumlu olarak, her iki veritabanı da verilerin doğruluğunu ve bütünlüğünü korur.

SQL uyumluluğu

MySQL ve MariaDB, verileri tablolar halinde düzenleyen ilişkisel veritabanlarıdır. MariaDB ve MySQL, verileri yönetmek ve sorgulamak için SQL kullanır. Bu sistemlerde aynı komutların çoğunu kullanabilirsiniz.

SQL hakkında bilgi edinin »

Hem MySQL hem de MariaDB, verileri SQL arabirimiyle ilişkisel tablolar olarak depolar.

Açık kaynak yazılım

Açık kaynaklı ilişkisel veritabanı yönetim sistemleri olarak MySQL ve MariaDB, bir geliştiriciler topluluğunun iş birliğine dayalı çabalarıyla ortaya çıkmıştır. Kaynak kodları halka açıktır.

MySQL veritabanının, Genel Kamu Lisansı (GPL) altında yayınlanan tamamen açık kaynaklı bir sürümü vardır. Ayrıca ek özellikler ve destek ile birlikte sunulan bir ücretli kurumsal sürümü vardır. MariaDB, GitHub'da tamamen açık kaynaklıdır.

Güvenlik

MySQL ve MariaDB benzer temel güvenlik özellikleri sunar. Şifreleme, erişim denetimi mekanizmaları, kullanıcı kimlik doğrulaması ve yetkilendirme, ayrıca SSL/TLS desteği sunarlar. Ayrıca ayrıntılı erişim denetimine izin verirler ve böylece farklı kullanıcılara farklı izin düzeyleri verebilirsiniz.

Temel farklılıklar: MariaDB ve MySQL

MariaDB, MySQL'den çatallandıktan sonra özelliklerini genişletmeye devam etti. Bu değişikliklerden bazıları temel işlevsellik, özellik ve performans farklılıklarına yol açtı.

MySQL ile MariaDB arasındaki önemli farklar burada verilmiştir.

JSON veri işleme

MariaDB ve MySQL, JSON verilerinin alınmasını ve depolanmasını destekler. Ancak JSON raporlarını farklı şekillerde saklarlar. MariaDB, JSON raporlarını dizelerde saklarken MySQL bunları ikili nesneler olarak saklar.

Ne MySQL ne de MariaDB tüm JSON işlevlerini desteklemez. MariaDB, JSON_QUERY ve JSON_EXISTS'i desteklerken MySQL desteklemez. Benzer şekilde, MySQL, MariaDB'nin desteklemediği JSON_TABLE yerel JSON veri türünü destekler.

Ancak MariaDB, 10.2 sürümünden bu yana JSON veri türlerini desteklemektedir. MariaDB'nin kullandığı JSON veri türü, LONGTEXT için bir takma addır.

İşlevsellik

Geliştirme yolları farklı olduğundan MariaDB ve MySQL şimdi birbirinden biraz farklı işlevler sunuyor.

Örneğin MySQL, tek bir sütunda birden çok veri değeri tanımlamanıza ve sütunu işlevlerle değiştirmenize olanak tanıyan dinamik sütunlar sağlar. Dinamik sütunlar, veri maskeleme işlemenin hassas bilgileri korumasına olanak tanır.

Buna karşılık olarak MariaDB, veritabanı görünümlerinde görünmez sütunları destekler. Kullanıcı bir SELECT eylemi gerçekleştirdiğinde veya INSERT eyleminde bir değer istediğinde görünmez sütunlar listelenmez.

Kullanıcı kimlik doğrulaması

MySQL, parola güvenliğini artırmak için kullanabileceğiniz validate_password bileşenine sahiptir.

MariaDB varsayılan olarak buna sahip değildir ancak üç doğrulayıcı eklentisi sunar. Parolalara daha fazla koruma eklemek için bu parola doğrulayıcı eklentileri kullanabilirsiniz. 10.4 sürümünde MariaDB, daha önce kullanılan SHA-1 kimlik doğrulamasının yerini alacak ed25519 kimlik doğrulama eklentisini tanıttı. Bu, kullanıcıların kimliğini doğrulamaya ve parolaları güvenli bir şekilde saklamaya yardımcı olur. 

Şifreleme

MySQL ve MariaDB hem bekleyen hem de taşınan verileri şifreler.

MySQL, yönetici kullanıcıların yeniden yapma ve geri alma günlüklerini yapılandırmalarına ve şifrelemelerine olanak sağlarken geçici tablo alanını veya ikili günlükleri şifrelemeye izin vermez.

Diğer yandan, MariaDB ikili günlük şifrelemesini ve geçici tablo şifrelemesini destekler. 

İş parçacığı havuzu

İş parçacığı havuzu, bir veritabanının yeni bağlantıları önceden var olan iş parçacıklarıyla eşleştirerek kaynaklarını optimize etmesine olanak tanır. Yüksek iş parçacığı havuzu kapasitesi, ölçeğini büyütmek ve binlerce kullanıcıya paralel olarak hizmet sunmak isteyen uygulamalar için hayati önem taşır.

MariaDB, topluluk sürümünün bir parçası olan iş parçacığı havuzu eklentisinde iş parçacığı havuzu içerir. MariaDB aynı anda 200.000'den fazla bağlantıyı yönetme olanağı sunar.

MySQL, kurumsal sürümünde bir iş parçacığı havuzu eklentisine sahiptir. Ancak MariaDB kadar çok bağlantıyı bir kerede işleyemez.

Kullanım zamanı: MariaDB ve MySQL

MySQL ile karşılaştırıldığında MariaDB, daha ölçeklenebilirdir ve daha yüksek sorgu hızı sunar. Bu da onu büyük boyutlu verileri yönetmek için ideal hale getirir. Ayrıca MariaDB'de MySQL'in sahip olmadığı, sıra depolama altyapıları ve sanal sütunlar gibi daha fazla özellik bulursunuz. Bir tabloda birden fazla altyapı da kullanabilirsiniz.

Ancak MySQL, MariaDB'den çok daha uzun süredir kullanımdadır. Bazı kuruluşlar, MySQL'in sunduğu kurumsal desteği tercih etmektedir.

Daha sonra, iki veritabanı arasında seçim yaparken dikkate alınması gerekenlerden bahsedeceğiz.

Depolama altyapıları

Veritabanı yönetim sistemlerinde depolama altyapıları, veritabanındaki verileri almaya, güncellemeye ve depolamaya yardımcı olan bir bileşendir. Çalışmak istediğiniz depolama altyapısı, kararınızı etkileyebilir.

Hem MySQL hem de MariaDB'de birden fazla depolama altyapısı kullanabilirsiniz ancak MySQL daha az seçenek sunar. MySQL'deki bazı depolama altyapıları InnoDB, CSV, Federated, MyISAM, Merge ve Federated şeklindedir.

MariaDB; XtraDB, Aria, InnoDB, MariaDB ColumnStore, Memory, Cassandra ve Connect gibi MySQL'in desteklemediği bazı depolama altyapılarını destekler.

Lisans

MariaDB ve MySQL'in her ikisi de Genel Kamu Lisansı (GPL) sürümlerine sahiptir. MariaDB tamamen GPL yetkisi altındayken MySQL'in genel ve özel olmak üzere iki mevcut lisansı vardır.

Özel MySQL kurumsal sürüm lisansı, sorgulama hızını artıran iş parçacığı havuzu gibi ek özelliklerin kullanılmasını sağlar. Kaynak kodunu GPL altında dağıtmadan MySQL yazılımlarını dağıtmak isteyen şirketler, MySQL kurumsal sürümünü tercih edebilir.

Oracle veritabanı uyumluluğu

Oracle veritabanı uyumluluğu, Oracle veritabanının MariaDB veya MySQL veritabanlarıyla oluşturulmuş bir uygulama ile çalışabilmesidir.

Kuruluşunuz zaten Oracle veritabanı ürünlerini kullanıyorsa MySQL'i tercih edebilirsiniz. Oracle veritabanı, MySQL'e özgü SQL söz dizimi için özel bir uyumluluk modu sunar. Ancak MySQL, Oracle'ın geliştirdiği uygulama odaklı dil olan PL/SQL'i desteklememektedir.

MariaDB, 10.3 sürümünden itibaren PL/SQL'i desteklemektedir. MariaDB ayrıca Oracle veritabanı uygulamalarını değiştirmeden çalıştırmak için bir Oracle söz dizimi uyumluluk modu sağlar.

Hız ve performans

MySQL, uzun yıllar boyunca çeşitli kullanım durumları için MariaDB'den daha iyi performans gösterdi. Örneğin MySQL 8.0, saniyede MariaDB'nin 10.3 sürümünden daha fazla sorgu işleyebilir. Bununla birlikte, MariaDB son yıllarda birçok iyileştirme yaptı.

Şu anda MariaDB, sorguları gerçekleştirme ve çoğaltma işlemleri açısından daha hızlıdır. Performans açısından kritik iş yükleri için MariaDB'yi tercih edebilirsiniz.

MySQL'den MariaDB'ye geçiş yapabilir misiniz?

Evet, minimum çabayla MySQL'den MariaDB'ye geçebilirsiniz. MariaDB, MySQL ile geriye dönük uyumlu olacak şekilde tasarlanmıştır. Bu, MySQL için yazılmış uygulamaların ve betiklerin, önemli bir değişiklik yapmadan MariaDB ile çalışması gerektiği anlamına gelir. 

MariaDB 5.5'e kadar MariaDB Sunucusu, MySQL'in aynı ana sürümüyle kullanıma hazır uyumluluğu hedefleyen MySQL sürüm numaralandırma şemasını izledi. 2012'de, MySQL'de bulunmayan artan özellik sayısını yansıtmak için MariaDB Sunucusu'nun sürüm numaralandırmasından ayrıldı. MariaDB, 10.0'ı piyasaya sürerken MySQL, 5.6'yı piyasaya sürdü.

MariaDB Sunucusu hâlâ MySQL ile yüksek düzeyde uyumluluğu korur. Eski MySQL sürümlerinden en yeni MariaDB sürümlerine bile yükseltmeler, yerinde yükseltme ile desteklenir.

MySQL'den MariaDB'ye geçiş, standart bir kurulum prosedürünü izler. MySQL veritabanının ayrıcalıklarını ve olay tablolarını MariaDB eş değerleriyle güncellemek için mysql_upgrade aracını çalıştırın.

Farklılıkların özeti: MySQL ve MariaDB

 

MySQL

MariaDB

JSON

MySQL, JSON raporlarını ikili nesneler olarak depolar.

MariaDB, JSON raporlarını dizelerde saklar. MariaDB'nin JSON veri türü, LONGTEXT için bir takma addır.

Oracle veritabanı uyumluluğu

MySQL, yüksek düzeyde uyumluluğa sahiptir ancak PL/SQL'i desteklemez.

MariaDB, yüksek düzeyde uyumluluğa sahiptir ve 10.3 sürümünden bu yana PL/SQL'i destekler.

Hız ve performans

MySQL, çoğaltma ve sorgulama işlemlerinde MariaDB'den biraz daha yavaştır.

MariaDB, çoğaltma ve sorgulama işlemlerinde MySQL'den biraz daha hızlıdır.

İşlevsellik

MySQL, süper salt okunur işlevi, dinamik sütunları ve veri maskelemeyi destekler.

MariaDB, görünmez sütunları ve geçici tablo alanını destekler.

Kimlik doğrulaması

MySQL, validate_password bileşenine sahiptir.

MariaDB'nin üç adet parola doğrulayıcı eklentisi vardır.

Şifreleme

MySQL veritabanları, bekleyen verileri şifrelemek için InnoDB ve AES kullanır.

MariaDB, geçici günlük şifrelemesini ve ikili günlük şifrelemesini destekler.

Depolama altyapıları

MySQL, MariaDB'den daha az depolama altyapısına sahiptir.

MariaDB, MySQL'den daha fazla depolama altyapısına sahiptir ve tek bir tabloda birden fazla altyapı kullanabilir.

Lisans

MySQL'in iki sürümü vardır: MySQL Enterprise Edition ve bir GPL sürümü.

MariaDB tamamen GPL altındadır.

İş parçacığı havuzu

MySQL, Enterprise Edition'da iş parçacığı havuzuna sahiptir.

MariaDB aynı anda 200.000'den fazla bağlantıyı yönetebilir ve bu da MySQL'den daha fazladır.

AWS, MySQL ve MariaDB gereksinimlerinizi nasıl destekleyebilir?

Amazon İlişkisel Veritabanı Hizmeti (Amazon RDS), bulutta veritabanı kurmayı, çalıştırmayı ve ölçeklendirmeyi basitleştiren, tam olarak yönetilen bir hizmetler topluluğudur.

İki tanesi MySQL ve MariaDB'ye tahsis edilmiş yedi popüler altyapı arasından seçim yapın. MariaDB için Amazon RDS, MariaDB Sunucusu'nun 10.3, 10.4, 10.5 ve 10.6 sürümlerini destekler. MySQL İçin Amazon RDS, MySQL Community Edition'ın 5.7 ve 8.0 sürümlerini destekler. 

CloudWatch Günlükleri

Amazon RDS'yi kullanarak yararlanabileceğiniz yollardan bazıları şunlardır:

  • Uygun maliyetli ve yeniden boyutlandırılabilir donanım kapasitesiyle ölçeklenebilir MariaDB ve MySQL bulut veritabanlarını dakikalar içinde dağıtın.
  • Mevcut kodu, uygulamaları ve araçları herhangi bir değişiklik yapmadan kullanın.
  • Gelişmiş veritabanı izleme için 50'den fazla CPU, bellek, dosya sistemi ve disk G/Ç ölçümüne erişin.
  • Tek bir veritabanı bulut sunucusunun kapasite kısıtlamalarının ötesine esnek bir şekilde ölçeği genişletmek için gelişmiş erişilebilirlikten ve dayanıklılıktan yararlanın.

Hemen bir hesap oluşturarak AWS'de MySQL ve MariaDB kullanmaya başlayın.

AWS İçin Sonraki Adımlar