MySQL nedir?
MYSQL, popüler ve yaygın olarak kullanılan bir DBMS sistemidir. İsim, kurucu ortak Michael Widenius'un kızı My kız isminden alınmıştır. MYSQL'in kaynak kodu GNU GPL altında mevcuttur. Proje, Oracle Corporation'a aittir ve Oracle Corporation'a aittir.
Bir RDBMS'dir (İlişkisel Veritabanı Yönetim Sistemi) ve öncelikle ilişkisel veritabanı modeli üzerinde çalışır. Veritabanı yönetimini daha kolay ve daha esnek hale getirir.
PostgreSQL nedir?
Postgre, bir nesne ilişkisel veritabanı yönetim sistemidir (ORDBMS). California Üniversitesi Bilgisayar Bilimleri Bölümünde geliştirilmiştir. Postgres birçok konsepte öncülük etti.
Postgre, Kurumsal sınıf bir ilişkisel veritabanı sistemidir. Kurulumu ve kurulumu kolaydır. SQL ve NoSQL için destek sunar. PostgreSQL kullanırken sorunlarla karşılaştığınızda size hizmet etmekten mutluluk duyan harika bir topluluğa sahiptir.
Bu eğitimde aşağıdakiler hakkında daha fazla bilgi edineceksiniz:
- MySQL Tarihçesi
- PostgreSQL Tarihi
- MySQL neden kullanılıyor?
- Neden PostgreSQL kullanıyorsunuz?
- MySQL'in Özellikleri
- PostgreSQL'in Özellikleri
- MySQL ve PostgreSQL Arasındaki Temel Farklılıklar
- MySQL kullanmanın dezavantajları
- PostgreSQL kullanmanın dezavantajları
- Ne daha iyi?
MySQL Tarihçesi
- MySQL, MySQL AB 1995 adlı bir İsveç şirketi tarafından oluşturulmuştur.
- Sun, MySQL AB'yi 2008 yılında 1 milyar dolara satın aldı
- Oracle, 2010'da Sun'ı satın aldı ve böylece MySQL'i satın aldı
- 2012 yılında MySQL, Monty Program Ab şirketi altında kurucusu Michael Widenius tarafından MariaDB'ye dahil edildi.
- MariaDB, 2013 yılında çoğu dağıtım için MySQL'in yerini aldı
- Monty Program Ab, SkySQL- 2013 ile birleşti
- SkySQL Ab, MariaDB Corporation - 2014 olarak yeniden adlandırıldı
PostgreSQL Tarihi
- INGRES geliştirildi-1977
- Michael Stonebraker ve meslektaşları Postgres'i geliştirdi - 1986
- Gerçek ACID ve PL / pgSQL desteği - 1990
- -1995'te Postgres95 olarak piyasaya sürüldü
- Postgres95, PostgreSQL 6.0 - 1996 olarak yeniden yayınlandı
- MVCC, GUC, Join syntax Controls and Procedural Language Loader eklendi - 1998-2001
- Sürüm 7.2 - 8.2: Şema desteği, Engellemesiz VACUUM, Roller ve dblink - 2002-2006 gibi özellikler
- PostgreSQL 8.4, 2009'da piyasaya sürüldü
- 2010'da piyasaya sürülen PostgreSQL 9.0
- NYCPUG (New York City PostgreSQL Kullanıcı Grubu) PgUS'a (Birleşik Devletler PostgreSQL derneği) katıldı - 2013
- PGconf düzenlenen-2014
ANAHTAR FARK:
- PostgreSQL, Nesne İlişkisel Veritabanı Yönetim Sistemidir (ORDBMS), MySQL ise topluluk odaklı bir DBMS sistemidir.
- PostgreSQL, JSON, XML vb. Gibi modern uygulama özelliklerini desteklerken, MySQL yalnızca JSON'u destekler.
- Karmaşık sorguları yürütürken PostgreSQL performansı iyi, MySQL ise OLAP ve OLTP sistemlerinde iyi performans gösterir.
- PostgreSQL tam ACID uyumludur, MySQL ise InnoDB ve NDB ile kullanıldığında sadece ACID uyumludur.
- PostgreSQL, Materyalleştirilmiş Görünümleri desteklerken, MySQL Materyalleştirilmiş Görünümleri desteklemez.
MySQL neden kullanılıyor?
MYSQL kullanmanın bazı önemli nedenleri şunlardır:
- Master-Slave Replication, Scale-Out gibi özellikleri destekler
- Boşaltma Raporlamasını, Coğrafi Veri Dağıtımını vb. Destekler.
- Çoğunlukla okuma uygulamaları için kullanıldığında MyISAM depolama motoruyla çok düşük ek yük
- Sık kullanılan tablolar için Bellek depolama motoru desteği
- Tekrar tekrar kullanılan ifadeler için Sorgu Önbelleği
- MySQL'i bloglar, teknik incelemeler ve kitaplar gibi farklı kaynaklardan kolayca öğrenebilir ve sorunlarını giderebilirsiniz.
Neden PostgreSQL kullanıyorsunuz?
PostgreSQL kullanmanın ana nedenleri şunlardır:
- Tablo bölümleme, Zaman İçinde Nokta Kurtarma, İşlemsel DDL vb. Gibi kullanışlı özellikler sunar.
- Tam bir PKI altyapısında 3. taraf Anahtar Depolarını kullanma yeteneği
- Geliştiriciler, açık kaynak kodunu, BSD kapsamında lisanslandığı için, iyileştirmelere katkıda bulunmaya gerek kalmadan değiştirebilir
- Bağımsız Yazılım Satıcıları, açık kaynaklı bir lisans tarafından "etkilenme" korkusu olmadan yeniden dağıtabilir
- Kullanıcılara ve Rollere Nesne düzeyinde ayrıcalıklar atanabilir
- AES, 3DES ve diğer veri şifreleme algoritmalarını destekler.
MySQL'in Özellikleri
- MySQL, topluluk odaklı bir DBMS sistemidir
- Tüm ana dilleri ve ara yazılımları kullanan çeşitli platformlarla uyumludur
- Çok sürümlü eşzamanlılık kontrolü için destek sunar
- ANSI SQL standardıyla uyumlu
- Günlük tabanlı ve tetik tabanlı çoğaltma SSL'sine izin verir
- Nesne yönelimli ve ANSI-SQL2008 uyumlu
- Bağımsız modüller ile çok katmanlı tasarım
- Kernel Threads kullanarak tamamen çok iş parçacıklı
- Sunucu, gömülü DB veya istemci sunucu modelinde mevcuttur
- Sorgu analizi ve alan analizi için yerleşik araçlar sunar
- 50 milyon veya daha fazla satıra kadar her miktarda veriyi işleyebilir
- MySQL, birçok UNIX türünün yanı sıra Windows ve OS / 2 gibi diğer UNIX olmayan sistemlerde de çalışır.
PostgreSQL'in Özellikleri
- Gelişimini hızlandıran aktif bir topluluk
- Oracle, DB2 ve SQL Server'a en yaygın alternatif
- Sahip olabileceğiniz tüm büyük işletim sistemi platformlarında çalışır
- MVCC çok sayıda eşzamanlı kullanıcıyı destekler
- Yüksek performanslı raporlama için kapsamlı indeksleme
- Modern uygulamalar için destek (XML ve JSON)
- Taşınabilir beceriler / kod için ANSI SQL desteği
- Verilerin verimli depolanması için yabancı anahtar desteği
- Esnek veri erişimi için tablo birleşimleri ve görünümleri
- Karmaşık programlar ve işlemler için Tetikleyiciler / Depolanan Prosedürler
- Veri yedekleme ve okuma ölçeklenebilirliği için replikasyon
MySQL ve PostgreSQL Arasındaki Farklar
Parametre | MYSQL | PostgreSQL |
Açık kaynak | MySQL projesi, kaynak kodunu GNU Genel Kamu Lisansı koşulları altında kullanıma sunmuştur. | PostgreSQL, ücretsiz Açık Kaynak lisansı olan PostgreSQL lisansı altında yayınlanmaktadır. Bu, BSD ve MIT lisanslarına benzer. |
Asit uyumu | MySQL, yalnızca InnoDB ve NDB Küme Depolama motorları ile kullanıldığında ACID uyumludur. | PostgreSQL tam ACID uyumludur. |
SQL uyumlu | MySQL kısmen SQL uyumludur. Örneğin, kontrol kısıtlamasını desteklemez. | PostgreSQL büyük ölçüde SQL uyumludur. |
Topluluk Desteği | Ara sıra ortaya çıkan yeni özelliklerle mevcut özellikleri korumaya odaklanan geniş bir katılımcı topluluğuna sahiptir. | Aktif topluluk, mevcut özellikleri sürekli olarak geliştirirken, yenilikçi topluluğu en gelişmiş veritabanı olarak kalmasını sağlamaya çalışır. Yeni son teknoloji özellikler ve güvenlik geliştirmeleri düzenli olarak yayınlanır. |
Verim | Çoğunlukla basit veri işlemleri için bir veritabanına ihtiyaç duyan web tabanlı projeler için kullanılır. | Okuma ve yazma hızlarının önemli olduğu büyük sistemlerde oldukça kullanılır. |
En uygun | MySQL, yalnızca okuma hızlarına ihtiyaç duyulduğunda OLAP ve OLTP sistemlerinde iyi performans gösterir. | Karmaşık sorguları yürütürken PostgreSQL performansı iyi. |
JSON desteği | MySQL, JSON veri türü desteğine sahiptir ancak başka herhangi bir NoSQL özelliğini desteklemez. | JSON ve yerel XML desteği gibi diğer NoSQL özelliklerini destekleyin. Ayrıca, daha hızlı erişim için JSON verilerinin endekslenmesine izin verir. |
Gerçekleştirilmiş görünümler için destek | Gerçekleştirilmiş görünümleri ve geçici tabloları destekler. | Geçici tabloları destekler ancak somut görünümler sunmaz. |
Ekosistem | MySQL, MariaDB, Percona, Galera vb. Gibi değişkenlerle dinamik bir ekosisteme sahiptir. | Postgres'in sınırlı ileri teknoloji seçenekleri vardı. Ancak son sürümde tanıtılan yeni özelliklerle değişiyor. |
Varsayılan değerler | Varsayılan değerlerin üzerine oturum düzeyinde ve ifade düzeyinde yazılabilir | Varsayılan değerler yalnızca sistem düzeyinde değiştirilebilir |
B-ağaç İndeksleri | Uygun olduğunda iki veya daha fazla B-ağaç indeksi kullanılabilir. | Çalışma zamanında değerlendirmek için birleştirilen B ağacı indeksleri, dinamik olarak dönüştürülmüş tahminlerdir. |
Nesne istatistikleri | Oldukça iyi nesne istatistikleri | Çok iyi nesne istatistikleri |
Stack Overflow soruları | 532 bin | 89.3K |
Yetenekleri birleştirme | Birleştirme yeteneklerini sınırlayın | İyi birleştirme yetenekleri |
GitHub Yıldızları | 3,34 bin | 5,6 bin |
Çatallar | 1,6 bin | 2,4 k |
Ürünü kullanan öne çıkan şirketler | Airbnb, Uber, Twitter | Netflix, Instagram, Groupon |
MySQL kullanmanın dezavantajları
- Sistem kataloğuyla ilgili işlemler ACID uyumlu değil
- Bir süre sunucu çökmesi sistem kataloğunu bozabilir
- Merkezi olarak yönetilen hesabı engelleyen takılabilir kimlik doğrulama modülü yok
- Rolleri desteklemediğinden, birçok kullanıcı için ayrıcalıkları korumak zordur
- Saklanan prosedürler önbelleğe alınamaz
- Prosedür veya tetikleyici için kullanılan tablolar her zaman önceden kilitlidir
PostgreSQL kullanmanın dezavantajları
- Mevcut harici çözümler yüksek bir öğrenme eğrisi gerektirir
- Büyük sürümler için yükseltme olanağı yok
- Verilerin yeni sürüme aktarılması veya çoğaltılması gerekiyor
- Yükseltme işlemi sırasında çift depolama gereklidir
- dizinler doğrudan bir sorgunun sonuçlarını döndürmek için kullanılamaz
- Sorgu yürütme planları önbelleğe alınmaz
- Toplu yükleme işlemleri CPU'ya bağlı hale gelebilir
- Seyrek Bağımsız Yazılım Satıcısı desteği
Ne daha iyi?
Her ikisini de karşılaştırdıktan sonra MySQL'in kendisini güncel tutmak için harika bir iş çıkardığını söyleyebiliriz, ancak diğer taraftan PostgreSQL için herhangi bir lisanslamaya ihtiyacınız yoktur. Ayrıca tablo mirası, kural sistemleri, özel veri türleri ve veritabanı olayları sunar. Yani, kesinlikle MySQL'in üzerine çıkıyor.