Fatihsoysal.com

Freelance Proje İş Alımı


Merhaba, şu anda anahtar teslim freelance proje iş alımları için uygunum.
Tekliflerinizi buradan yada fatihsoysal@outlook.com e-posta adresi üzerinden benimle paylaşabilirsiniz. Çok kısa bir süre içerisinde tarafınıza geri dönüş sağlanacaktır.

Kategoriler


PostgreSQL ve MySQL Karşılaştırması

Fatih SoysalFatih Soysal

Merhaba, Projeleriniz için hangi veritabanını kullanacağınızı düşünürken, tüm açık kaynak RDBMS’lerin aynı olduğunu düşünerek hata yapmayın!

PostgreSQL ve MySQL arasında radikal farklılıklar var. İki sistem arasındaki farklılıkları değerlendirdikten sonra bilinçli bir karar verilmelidir.

PostgreSQL ve MySQL arasındaki en yaygın olarak değerlendirilen özelliklerin benzerlik ve farklılıklarının bir özetini bu makale içerisinde bulabileceksiniz.

İki veri tabanı arasında birçok benzerlikler olsa da, çok farklı farklılıklar da vardır. İkisi arasında adil ve doğru bir karşılaştırma sağlamaya çalıştım, ancak sonunda, benzersiz senaryonuzu değerlendirmek ve hangi veritabanının özel kullanım durumunuza en uygun olduğunu sizler belirleyeceksiniz.

Yaklaşık 25-26 ay kadar büyük bir projede PostgreSQL kullandım, daha öncesinde MySQL’i sık sık projelerimde kullanmıştım ve halen kullanmaya devam ediyorum. Dilerseniz ana başlıklar halince karşılaştırmalarımıza başlayalım.

Açık kaynak

Açık kaynaklı yazılımlar bildiğiniz üzere, benzersiz olan özelliklere (maliyet, esneklik, özgürlük, güvenlik) sahiptir. Açık kaynak yazılımı serbestçe kullanılabilir ve herkes tarafından yeniden dağıtılabilir, değiştirilebilir. Açık kaynak yazılımların, uzun vadeli sürdürülebilirliği vardır. Dünya çapında bir topluluk veya bireysel geliştiriciler topluluğu tarafından oluşturulmuş ve desteklenmiştir; bunların birçoğu, işbirliği ve gönüllülük gibi açık kaynak değerleri esas alınarak oluşturulmuş topluluklardır.

PostgreSQL

MySQL

PostgreSQL, çeşitli şirketler ve bireysel katılımcılar grubu olan PostgreSQL Global Development Group tarafından geliştirilmiştir.

Ücretsiz ve açık kaynaklı bir veritabanıdır. PostgreSQL, BSD veya MIT lisanslarına benzer bir liberal Açık Kaynak lisansı olan PostgreSQL lisansı altında yayınlanmaktadır.

MySQL, kaynak kodunu, çeşitli özel anlaşmaların yanı sıra GNU Genel Kamu Lisansı şartlarına uygun hale getirmiştir.

Şu anda Oracle Corporation’a aittir, açık kaynaklı veritabanıdır ama tescilli kullanım için çeşitli ücretli sürümler de sunmaktadır.

ACID Uygunluğu

ACID, veritabanı işlemlerinin bir özellik kümesidir. ACID uyumluluğu, tek bir işlem sırasında çok sayıda değişiklik yapıldığında bile, olası arıza durumunda sistemde hiçbir verinin kaybolmamasını ve yanlış iletişim yapılmamasını sağlar.

PostgreSQL

MySQL

PostgreSQL, ACID ile uyumludur ve tüm gereksinimlerin karşılanmasını sağlar.

MySQL, InnoDB ve NDB Cluster Storage motorlarını kullanırken, ACID uyumludur.

SQL Uyumluluğu

SQL uyumu, bir veritabanının tüm yapılandırılmış sorgu dili yönergelerini ve standartlarını karşılaması ve uygulaması gereken bir standarttır. Şirketler bir uygulama için heterojen veritabanlarıyla çalışmak istediklerinde bu çok önemlidir.

SQL uyumluluğuna sahip olmak, verileri bir SQL uyumlu veritabanından diğerine (ör. Oracle’dan PostgreSQL veya SQL Server’a) taşımayı çok kolaylaştırır.

PostgreSQL

MySQL

PostgreSQL büyük ölçüde SQL uyumludur. Her bir özellik için uygunluk seviyesi, resmi dökümantasyonun Ek D’sinde açıkça belirtilmiştir ve herhangi bir sapma, PostgreSQL kılavuzunun “Referans” bölümünde açıkça belgelenmiştir.

Dökümantasyon kaynağı

PostgreSQL, SQL’in önemli özelliklerinin çoğunu destekler: 2011. Tam Çekirdek uyumluluğu için gerekli olan 179 zorunlu özellik arasından, PostgreSQL en az 160’ı ile uyumludur. Ayrıca, desteklenen isteğe bağlı özelliklerin uzun bir listesi vardır. Yazma sırasında, herhangi bir veritabanı yönetim sisteminin mevcut sürümünün Core SQL’e tam uygunluk göstermediğini belirtmekte fayda var: 2011.

MySQL, bazı sürümlerde kısmen uyumludur (örn. CHECK kısıtlamalarını desteklemez).

Dökümantasyon kaynağı

Ürünle ana hedeflerimizden biri, SQL standardıyla uyum içinde çalışmaya devam etmektir, ancak hız veya güvenilirlikten ödün vermeden. SQL’e eklenti eklemek veya SQL tabanlı olmayan özellikler için destek sağlamaktan korkmazsak, bu, MySQL Server’ın kullanıcı tabanımızın büyük bir bölümü için kullanılabilirliğini büyük ölçüde artırır.

Dağıtılmış Veritabanı

Veritabanı çoğaltması, bir bilgisayardaki veya veritabanındaki bir veritabanındaki verilerin bir diğerinde bir veritabanına sık sık elektronik olarak kopyalanmasıdır, böylece tüm kullanıcılar aynı bilgi düzeyini paylaşır. Sonuç, kullanıcıların başkalarının çalışmalarına müdahale etmeden görevleriyle ilgili verilere erişebilecekleri dağıtılmış bir veritabanıdır.

PostgreSQL

MySQL

PostgreSQL, Master-Standby replikasyonunu destekler ve standby sunucular için neredeyse gerçek zamanlı replikasyon ve hot standby yetenekleri ile sonuçlanan son derece hızlı WAL işlemi üreten önemli geliştirmeler getirdi.

MySQL, Master-Beklemedeki çoğaltmayı destekler.

Performans

Performans, yalnızca belirli kullanıcıların saf gereksinimlerine ve uygulamanın yapısına bağlı olduğu için potansiyel senaryoların ölçülerini değerlendirerek ölçülebilen bir alandır.

PostgreSQL

MySQL

PostgreSQL, okuma ve yazma hızlarının çok önemli olduğu ve verilerin doğrulanması gereken büyük sistemlerde yaygın olarak kullanılmaktadır. Ayrıca, yalnızca coğrafi veri desteği, okuma kilidi olmayan eşzamanlılık ve benzeri (örneğin Oracle, SQL Server) gibi ticari çözümlerde kullanılabilen çeşitli performans optimizasyonlarını destekler.

Genel olarak, PostgreSQL performansı, karmaşık sorguların yürütülmesini gerektiren sistemlerde en iyi şekilde kullanılır.

Okuma / yazma hızları gerektiğinde ve kapsamlı veri analizi gerektiğinde PostgreSQL, OLTP / OLAP sistemlerinde iyi performans gösterir.

PostgreSQL ayrıca, İş Zekası uygulamalarıyla da iyi çalışır, ancak hızlı okuma / yazma hızları gerektiren Veri Ambarı ve veri analizi uygulamaları için daha uygundur.

MySQL, sadece basit veri işlemleri için bir veri tabanına ihtiyaç duyan web tabanlı projeler için yaygın olarak kullanılmaktadır. Dolayısıyla, MySQL’e ağır bir yük yüklendiğinde ya da karmaşık sorguları tamamlamaya çalışırken düşük performans göstermesi olasıdır.

MySQL, sadece okuma hızları gerektiğinde OLAP / OLTP sistemlerinde iyi performans gösterir.

MySQL + InnoDB, OLTP senaryoları için çok iyi okuma / yazma hızları sağlar. Genel olarak, MySQL yüksek eşzamanlılık senaryoları ile iyi performans gösterir.

İş zekası uygulamaları genellikle ağır ağır işlediğinden, MySQL’e bu konuda güvenilirsiniz, İş Zekası uygulamalarıyla iyi çalışır.

Güvenlik

Veritabanı güvenliği, bir veritabanını kötü niyetli tehditler ve saldırılardan korumak için kullanılan toplu önlemleri ifade eder. Veritabanı ortamında güvenliği sağlayan çok sayıda süreç, araç ve metodoloji terimler vardır.

PostgreSQL

MySQL

PostgreSQL, izinleri ayarlamak ve sürdürmek için devralınmış rollere sahiptir. PostgreSQL, istemci / sunucu iletişimini şifrelemek için bağlantılar için yerel SSL desteğine sahiptir. Ayrıca Satır Seviyesi Güvenliği de vardır.

Buna ek olarak, PostgreSQL SELinux güvenlik politikasına dayalı ek erişim kontrolleri sağlayan SE-PostgreSQL olarak adlandırılan dahili bir geliştirme ile birlikte gelir. Daha fazla detay için burayı inceleyebilirsiniz.

MySQL, bir kullanıcının gerçekleştirmeye çalıştığı tüm bağlantılar, sorgular ve diğer işlemler için Erişim Denetimi Listelerine (ACL) dayanan güvenliği uygular.

MySQL istemcileri ve sunucular arasında SSL şifreli bağlantılar için bazı destekler de vardır.

Cloud Desteği

Daha fazla işletme, verilerini buluta kaydırmayı tercih ettikçe, veritabanınızı destekleyen bulut sağlayıcılarını bulma yeteneği giderek daha da önem kazanıyor. Cloud hosting, sunucuların esnekliğini sağlar ve kapasitelerini hızla genişletmenize veya daraltmanıza izin verir. Ayrıca, en yoğun iş yüklerini kolayca yönetirken potansiyel arıza süresinin azaltılmasına da olanak tanır.

PostgreSQL

MySQL

Amazon, Google ve Microsoft dahil olmak üzere tüm büyük bulut servis sağlayıcıları tarafından desteklenir.

Amazon, Google ve Microsoft dahil olmak üzere tüm büyük bulut servis sağlayıcıları tarafından desteklenir.

Topluluk Desteği

PostgreSQL

MySQL

PostgreSQL, mevcut özellikleri sürekli olarak geliştiren çok güçlü ve aktif bir topluluğa sahipken, yenilikçi işleyicileri, yeni özellikler ve güvenlik ile en gelişmiş veritabanı olmayı sürdürmek için çabalamaktadır.

MySQL’in, özellikle Oracle’ın satın alınmasını takiben, özellikle mevcut özelliklerin zaman zaman ortaya çıkan bazı yeni özelliklerle sürdürülmesine odaklanan büyük bir katkıda bulunanlar topluluğu vardır.

NoSQL Özellikleri / JSON Desteği

NoSQL ve JSON her ikisi de bu sıralar çok popüler. NoSQL uyumlu veritabanları daha yaygın hale geliyor. JSON, bildiğiniz gibi key / value eşlemeleri kümelerini depolamasına ve iletmesine olanak veren basit bir veri biçimidir.

PostgreSQL

MySQL

PostgreSQL, yerel XML desteği ve HSTORE ile anahtar / değer çiftleri gibi JSON ve diğer NoSQL özelliklerini destekler. Ayrıca daha hızlı erişim için JSON verilerini indekslemeyi de destekler.

MySQL’in JSON veri türü desteği vardır, ancak başka bir NoSQL özelliği yoktur. JSON için indekslemeyi desteklemez.

Programlama Dilleri Desteği

Programlama dilleri desteği, çok çeşitli geliştiricilerin, en yetkin oldukları dilde birkaç görevi yerine getirmelerine yardımcı olur. Geliştiriciler, duruma göre, sunucuda veya istemcide belirli bir prosedürün gerçekleştirilip gerçekleştirilmeyeceğine serbestçe karar verebilir, çünkü sunucu, veritabanı işlevleri için çok çeşitli farklı programlama dillerini desteklemektedir. Programlama dilleri, geliştiricilere daha fazla güç verme eğilimindedir.

PostgreSQL

MySQL

PostgreSQL, C / C ++, Java, JavaScript, .Net, PHP, R, Perl, Python, Ruby, Tcl ve diğerleri dahil olmak üzere çok çeşitli programlama dillerini destekler; Kullanıcı tarafından sağlanan kodu ayrı süreçlerde çalıştırmak (hatta arka plan çalışanları olarak çalışmak) bile mümkündür.

Sunucu taraflı (Server Side) programlama dillerinde kullanılabilir.

Sizin de konu ile ilgili görüşleriniz varsa yorum bölümünden paylaşabilirsiniz. Bir sonraki makalede görüşmek üzere.

Kullanım ve kodlama mükemmeliyetini odak alan uygulamalar oluşturma deneyimine sahip, profesyonel olarak 15+ yıl üzeri deneyime sahip bir yazılım mühendisi.

    Subscribe
    Bildir
    guest

    1 Yorum
    Eskiler
    En Yeniler Beğenilenler
    Inline Feedbacks
    View all comments
    Erkan
    Erkan
    27 Mart 2018 16:28

    Güzel bir inceleme. Çok teşekkürler.

    1
    0
    Düşüncelerinizi öğrenmek isterim, makaleyi beğendiyseniz, yorum yapabilirsiniz.x