Son zamanlarda NoSQL büyük popülerlik kazanmıştır.
NoSQL'in geleneksel RDBMS'ye göre avantajları nelerdir ?
Son zamanlarda NoSQL büyük popülerlik kazanmıştır.
NoSQL'in geleneksel RDBMS'ye göre avantajları nelerdir ?
Yanıtlar:
Tüm veriler ilişkisel değildir. Bu durumlar için NoSQL yardımcı olabilir.
Bununla birlikte, NoSQL "Sadece SQL Değil" anlamına gelir. SQL'i vurmak veya yerine koymak için tasarlanmamıştır.
SQL'in birçok büyük avantajı vardır:
Bunlar gitmedi.
Bunu bir ya da argüman olarak düşünmek yanlıştır. NoSQL, insanların uyurken dikkate alması gereken bir alternatiftir, hepsi bu.
Belgeler CouchDB gibi ilişkisel olmayan veritabanlarında saklanabilir.
Belki okuma bu irade yardım.
SELECT blob FROM images WHERE blob CONTAINS('red car')
. Bu nedenle, verileri ham veritabanında depolayabilseniz de, meta veri eklemeden bu verileri arayamazsınız. RDBMS sistemlerindeki tam metin arama modülleri, yarı yapısal boşluğun bir kısmını köprüler.
Tarih böyle görünüyor:
Google, tersine çevrilmiş arama dizini için bir depolama katmanına ihtiyaç duyar. Geleneksel bir RDBMS'nin onu kesmeyeceğini düşünüyorlar. Bu nedenle, GFS dosya sistemlerinin üzerine BigTable olan bir NoSQL veri deposu uyguluyorlar. Büyük kısmı, binlerce ucuz emtia donanım makinesinin hız ve yedekliliği sağlamasıdır.
Herkes Google'ın ne yaptığını fark eder.
Brewers CAP teoremi kanıtlanmıştır. Tüm RDBMS kullanım sistemleri CA sistemleridir. İnsanlar CP ve AP sistemleriyle de oynamaya başlar. K / V mağazaları oldukça basittir, bu nedenle araştırmanın birincil aracıdır.
Hizmet olarak yazılım sistemleri genel olarak SQL benzeri bir mağaza sağlamaz. Bu nedenle, insanlar NoSQL tipi mağazalarla daha fazla ilgilenirler.
Kalkışın büyük bölümünün bu tarihle ilgili olabileceğini düşünüyorum. Ölçeklendirme Google, Google'da bazı yeni fikirler aldı ve herkes bunu takip ediyor, çünkü şu anda ölçeklendirme sorununa bildikleri tek çözüm bu. Bu nedenle, Google'ın dağıtılmış veritabanı fikri etrafındaki her şeyi yeniden işlemeye hazırsınız çünkü belirli bir boyutun ötesine ölçeklenmenin tek yolu bu.
C - Tutarlılık
A - Kullanılabilirlik
P - Bölüm toleransı
K / V - Anahtar / Değer
NoSQL, NoSQL'in aşağıdaki nedenleri / özellikleri nedeniyle RDBMS'den daha iyidir
DÜZENLE:
" RDBMS'nin neden ölçeklenemediğini" yanıtlamak için lütfen Stavros Harizopoulos, Daniel J. Abadi, Samuel Madden ve Michael Stonebraker tarafından yazılan RDBMS Genel Giderleri pdf dosyasına bakın.
RDBMS'ler, Terabytes & Peta baytlarının büyük veri hacimlerini işlemede zorluklarla karşı karşıyadır . Yedekli Bağımsız / Ucuz Diskler Diziniz (RAID) ve veri parçalama olsa bile, büyük miktarda veri için iyi ölçeklenmez. Çok pahalı bir donanıma ihtiyacınız var.
Günlük Kaydı : Günlük kayıtlarının birleştirilmesi ve veritabanı yapılarındaki tüm değişikliklerin izlenmesi performansı yavaşlatır. Kurtarılabilirlik bir gereklilik değilse veya kurtarılabilirlik başka yollarla sağlandıysa (örn. Ağdaki diğer siteler) günlüğe kaydetmeye gerek olmayabilir.
Kilitleme : Geleneksel iki fazlı kilitleme, veritabanı yapılarına tüm erişim ayrı bir varlık olan Kilit Yöneticisi tarafından yönetildiği için büyük bir yük oluşturur.
Kilitleme : Çok iş parçacıklı bir veritabanında, birçok veri yapısına erişilmeden önce kilitlenmeleri gerekir. Bu özelliğin kaldırılması ve tek iş parçacıklı bir yaklaşıma gitmenin, belirgin bir performans etkisi vardır.
Arabellek yönetimi : Bir ana bellek veritabanı sisteminin sayfalara bir tampon havuzu aracılığıyla erişmesi gerekmez ve her kayıt erişiminde dolaylı bir seviyeyi ortadan kaldırır.
Bu, SQL üzerinden NoSQL kullanmamız gerektiği anlamına gelmez.
Yine de, RDBMS'nin aşağıdaki nedenleri / özellikleri nedeniyle RDBMS NoSQL'den daha iyidir
İş durumuna ve gereksinimlerine bağlı olarak RDBMS (SQL) ve NoSQL (Sadece SQL değil) kullanmalıyız
NOSQL'in ilişkisel veritabanı modeline göre özel bir avantajı yoktur. NOSQL, mevcut SQL DBMS'lerin belirli sınırlamalarına yöneliktir, ancak önceki veri modellerine göre temelde yeni yetenekler anlamına gelmez.
NOSQL, yalnızca SQL (veya "sadece SQL" değil) anlamına gelir, ancak bu ilişkisel olmadığı anlamına gelmez . Prensipte ilişkisel bir veritabanı çok iyi bir NOSQL çözümü yapar - sadece mevcut NOSQL ürünleri setinin hiçbiri ilişkisel modeli kullanmaz.
RDBMS daha çok ilişkiye odaklanır ve NoSQL daha çok depolamaya odaklanır.
Sen kullanarak düşünebiliriz NoSQL sizin zaman RDBMS darboğazları ulaşır. NoSQL , RDBMS'yi daha esnek hale getirir .
NoSQL'in RDBMS'ye göre en büyük avantajı Ölçeklenebilirliktir .
NoSQL veritabanları birçok düğüme kolayca ölçeklenebilir, ancak RDBMS için çok zordur.
Ölçeklenebilirlik size daha fazla depolama alanı sağlamakla kalmaz, aynı zamanda birçok ana bilgisayar aynı anda çalıştığından çok daha yüksek performans sağlar.
Yukarıda verilen tüm bilgilere ekleyerek
NoSql Avantajları:
1) Şema içermeyen ve nesne yönelimli mimari desteği sayesinde hızlı bir şekilde üretime hazır olmak istiyorsanız NoSQL iyidir.
2) NoSql db'leri nihayetinde tutarlıdır, bu da basit dilde RDBMS'de olduğu gibi veriler (belgeler) üzerinde herhangi bir kilit sağlamayacakları anlamına gelir ve bunun anlamı, verilerin en son anlık görüntüsünün her zaman kullanılabilir olması ve böylece uygulamanızın gecikmesini arttırmasıdır. .
3) Verilerin (belgelerin) anlık görüntüsünü korumak ve oluşturmak için MVCC (Çoklu görünüm eşzamanlılık kontrolü) stratejisini kullanır.
4) Dizinlenmiş verilere sahip olmak istiyorsanız, verileri verdiğiniz görünüm tanımına göre otomatik olarak dizinleyecek görünüm oluşturabilirsiniz.
NoSql Dezavantajları:
1) Sonunda tutarlı olduğu ve ASİT özelliklerini desteklemediği için kesinlikle büyük ağır işlem uygulamaları için uygun değildir.
2) Ayrıca, eşzamanlılık kontrolü için MVCC metodolojisini kullandığından verilerinizin (belgelerinizin) birden fazla anlık görüntüsünü (revizyonları) oluşturur, bunun sonucunda alan eskisinden daha hızlı tüketilir ve bu da sıkıştırmayı ve dolayısıyla yeniden endekslemeyi daha sık yapar ve yavaşlatır. uygulamanızdaki veri ve işlem büyüdükçe uygulama yanıtı. Bunun için düğümleri yatay olarak ölçeklendirebilirsiniz ancak daha sonra sql veritabanını karşılaştırırken daha yüksek maliyet olacaktır.
Gönderen mongodb.com :
NoSQL veritabanları dört ana alandaki eski, ilişkisel teknolojiden farklıdır:
Veri modelleri : NoSQL veritabanı, sisteme herhangi bir veri eklemeden önce şemanızı tanımlamanızı sağlayan ilişkisel veritabanlarının aksine şemayı tanımlamanıza gerek kalmadan bir uygulama oluşturmanıza olanak tanır. Önceden tanımlanmış bir şema, verileriniz ve gereksinimleriniz değiştikçe NoSQL veritabanlarının güncellenmesini çok daha kolay hale getirmez.
Veri yapısı : İlişkisel veritabanları, verilerin oldukça yapılandırıldığı ve ilişkileri tarafından açıkça tanımlandığı bir çağda oluşturulmuştur. NoSQL veritabanları, bugün var olan verilerin çoğunu oluşturan yapılandırılmamış verileri (ör. Metinler, sosyal medya gönderileri, video, e-posta) işlemek için tasarlanmıştır.
Ölçeklendirme : Bir NoSQL veritabanını ilişkisel bir veritabanından ölçeklendirmek çok daha ucuzdur, çünkü ucuz, emtia sunucularını ölçeklendirerek kapasite ekleyebilirsiniz. İlişkisel veritabanları ise, tüm veritabanınızı barındırmak için tek bir sunucu gerektirir. Ölçeklendirmek için daha büyük, daha pahalı bir sunucu satın almanız gerekir.
Geliştirme modeli : NoSQL veri tabanları açık kaynak kodlu iken, ilişkisel veri tabanları yazılımlarının kullanımına verilen lisans ücretleriyle tipik olarak kapalı kaynak kodludur. NoSQL ile, yazılım ücretlerine önceden ciddi bir yatırım yapmadan bir projeye başlayabilirsiniz.