Projelerimde her iki veri tabanı ile çalıştıktan sonra Postgres ve Mongo ile olan deneyimim.
Postgres (RDBMS)
Postgres, gelecekteki uygulamalarınızda çok sayıda birleştirme gerektiren karmaşık bir şemaya sahipse veya tüm verilerin birbiriyle ilişkisi varsa veya ağır yazılarımız varsa önerilir. Postgres açık kaynaklıdır, daha hızlıdır, ACID uyumludur ve diskte daha az bellek kullanır ve JSON depolaması için de iyi performans gösterir ve 3 seviyeli işlem yalıtımı ile işlemlerin tam serileştirilebilirliğini içerir.
Postgres'te kalmanın en büyük avantajı, her iki dünyanın da en iyisine sahip olmamızdır. Verileri kısıtlamalar, tutarlılık ve hız ile JSONB'ye depolayabiliriz. Öte yandan, tüm SQL özelliklerini diğer veri türleri için kullanabiliriz. Altta yatan motor çok kararlıdır ve çok çeşitli veri hacimleri ile iyi başa çıkmaktadır. Ayrıca seçtiğiniz donanım ve işletim sistemi üzerinde çalışır. Tam işlem desteğinin yanı sıra NoSQL yetenekleri sağlayan Postgres, JSON belgelerini alan verileri üzerinde kısıtlamalarla depolar.
Postgres için Genel Kısıtlamalar
Postgres'i Yatay olarak ölçeklemek önemli ölçüde daha zordur, ancak yapılabilir.
Postgres ile hızlı okuma işlemleri tam olarak gerçekleştirilemez.
SQL Veri Tabanı YOK
Mongo DB (Kablolu Kaplan)
MongoDB, Postgres'i “yatay ölçek” boyutunda yenebilir. JSON'u depolamak, Mongo'nun yapmak için optimize edildiği şeydir. Mongo, verilerini BSONb adı verilen ikili bir biçimde saklar; bu (kabaca), JSON'un bir üst kümesinin yalnızca bir ikili temsilidir. MongoDB, nesneleri tam olarak tasarlandıkları gibi saklar. MongoDB'ye göre, yazma yoğun uygulamalar için Mongo, yeni motorun (Wired Tiger) kullanıcılara yazma performansında 10 kata kadar artış sağladığını (bunu denemeliyim), depolama kullanımında yüzde 80 azalma sağladığını ve depolama maliyetlerinin düşürülmesine yardımcı olduğunu söylüyor. , donanımdan daha fazla yararlanın.
MongoDb'nin Genel Kısıtlamaları
Şema daha az depolama motorunun kullanılması, örtük şemalar sorununa yol açar. Bu şemalar depolama motorumuz tarafından tanımlanmaz, bunun yerine uygulama davranışına ve beklentilerine göre tanımlanır.
Bağımsız NoSQL teknolojileri, yapılandırılmamış uygulamalar için yüksek üretim performansı lehine kritik veri korumalarından ödün verdikleri için ACID standartlarını karşılamaz. ACID'yi NoSQL veritabanlarına uygulamak zor değildir, ancak veritabanını bir dereceye kadar yavaş ve esnek olmayacaktır. "NoSQL sınırlamalarının çoğu, önceki sınırlamalarını büyük ölçüde aşan yeni sürümlerde ve sürümlerde optimize edildi".