Soyut gereksinimleriniz bana "PostgreSQL" diye bağırıyor. Ancak, burjuvazinin ne yaptığını takip etmeye değer olduğunu düşünüyorum, bu yüzden kontrol etmek isteyebileceğiniz çeşitli şeylerin bir listesi.
Ücretsiz şeyler
- CouchDB - ilk NoSQL veritabanlarından biri, güçlü harita / azaltma sorgulama sistemi, yüksek dağıtılmış ve hataya dayanıklı. Daha iyi NoSQL yarışmacılarından biri.
- Hyperdex - arama özelliklerine sahip çok yeni, dağıtılmış karma tablo.
- Riak - dağıtılmış hash tablosu biraz saygı görmeye değer.
Tuhaf ücretsiz şeyler
- Metakit - SQLite gibi gömülü bir veritabanından daha fazlası, ancak SQL tabanlı değil, bu yüzden daha prosedürel.
- FramerD - klasik bir "ağ" veritabanı gibi, çok işaretçi merkezli. Belki ölüdür?
- Magma - Smalltalk OODBMS. Serin ama iyi belgelenmiş değil.
Ücretsiz olmayan şeyler
- AllegroGraph - RDF (grafik) veritabanı, SPARQL'i destekler. Lisp aromalı.
- Caché - başlangıçta MUMPS (IIRC) tabanlı bir hibrit ilişkisel / OO veritabanı.
- Nesnellik - Son birkaç büyük OODB'den biri. Çok güçlü, etkileyici ve pahalı.
- VoltDB - Yüksek oranda ölçeklenebilir çoğunlukla ilişkisel veritabanı. "En" SQL destekler. Çok yeni. Sanırım bir topluluk versiyonları da var.
Sonuç
Bunlardan hiçbirini yoğun bir şekilde kullanmadım. Çoğuyla biraz oynadım ve her zaman PostgreSQL ile geri döndüm. Gereksinimlerinize baktığımızda, PostgreSQL kutudan çıktığı tek şey ölçeklenebilirliktir. Öte yandan, benim amacım için, tek bir özel veritabanı makinesine 4000 $ donanım atmak, bu soruna 4000 $ bulut düğümleri veya düşük-uç makineler atmaktan çok daha kolay. EnterpriseDB gibi PostgreSQL ile ölçeklenebilirlik sağlamanın yolları da var .
Yanlarında bu şeylerle oynamak çok eğlencelidir, ancak değerli, yeniden üretilemez üretim verilerini bir şeye koymanın zamanı geldiğinde, güvenilirlik, istikrar ve uzun vadeli canlılık gibi sıkıcı nitelikler öne çıkmaktadır.
Sizin için düşünce deneyi
Bunu düşün. Mark Zuckerberg olduğunuzu ve kod tabanınızı ya da verilerinizi bırakmayı seçmeniz gerektiğini düşünün. Tüm geliştirme personelinizi koruyabilirsiniz, ancak ya tüm kodunuzu bırakmak zorundasınız - her satırda, tüm geliştiricilere bile her şeyin nasıl uygulandığına dair anılarınızı söyleyin - ancak tüm kullanıcı hesaplarınızı ve tüm kullanıcılarınızı yüklediniz veri ve tüm bu, ya da tüm verileri vazgeçebilir. Tüm yapıları ve sunucuları ve yapılandırmayı, kurulumu koruyun, ancak her veritabanındaki her tablodaki her satırı kaybedin.
Verileri kaybetmenin daha kötü olacağı açık olmalıdır. Tüm kullanıcılarınız neden tüm bu verileri yeniden oluştursun? Kaybedilen tüm pazarlama verilerini düşünün, Facebook aslında para kazanıyor. İnsanları Facebook klonlarını kullanma fırsatına saldıran tonlarca girişimci var - şimdi tüm haklarından mahrum bırakılmış eski Facebook kullanıcıları alternatifleri göz önünde bulundurarak dışarıda olacaklardı. Öte yandan, kod tabanını kaybettiler, muhtemelen şimdi olduğundan daha iyi olabilirler, ancak çok kısa bir sırada çevrimiçi bir şeyleri olabilirler. Heck — muhtemelen satın alabilirlerdibaşkasının Facebook klon kod tabanını klonlayın ve gerçek verilerle yükleyin, ancak verilerini kopyalayamazsınız. Facebook hala herkesin sunucularında önemli verilere sahipse, ayrılma teşviki çok daha düşüktür. Hala kötü, ama çok daha az. Şaşırtıcı derecede daha az.
İronik olan, tüm verilerinizi bir ucube kazasında kaybetmenin, tüm kodunuzu kaybetmekten çok daha kolay olmasıdır. En internet şirketleri için olsa da, veri olduğunu o şirket olan en değerli varlık. Ve bu, geleneksel, zamanla test edilmiş, eski moda, unsexy ilişkisel veritabanı kullanmayı düşünmek için güçlü bir nedendir.