2011-02-04 15 views
12

CouchDB'ye dayanan bir sistem tasarlıyorum. Bir kaç farklı bileşene sahip olacak - kullanıcıların listesi, ana veri deposu, günlüğe kaydetme, vs. Bir fikir almak istediğim şey, bir CouchDB veritabanının kapsamı ne olmalıdır? Her bir bileşen için ayrı veritabanlarım mı olmalı yoksa her şeyi bir araya getirmeli ve her belge için 'tip' özelliğini kullanmalı mıyım? Tek tek veritabanlarının oldukça mutlu olabileceğini biliyorum, ancak veritabanlarını bölmek yerine, her şeyi tek bir veritabanında tutarak etkilenen görünümlerin performansı nedir? Esasen, ticarete konu olan şeyler nelerdir?Ayrı bir CouchDB veritabanını ne zaman kullanırım?

Şerefe.

cevap

13

İyi soru, Dan.

Bunun temel olarak bir optimizasyon problemi olduğunu düşünüyorum. İyi bir fikir, çok yakında (çoklu veritabanlarına ayırmak) optimize etmemek. (Tek istisna genellikle sıkıştırma gerektiren. Ben hemen günlükleri ayrılarak olabilir, hızla tüm diğer verileri dominiate hangi, günlükleri olabilir.)

performansı görüntüleme etkilenmeyecektir. Önceden tanımlanmış sorgular (görünüm tanımları) karşılığında CouchDB, her zaman hızlı görüntüleme sonuçlarını garanti eder.

birden veritabanlarına bölmek ister

tipik kimlik doğrulama ve izin kaygıları bağlıdır. Normal bir web sunucusu ön uç kullanırsanız, bu daha az endişe kaynağı olur. Sık sık sorgulamak eğer

tüm görünümlerde olduğu gibi, onlar gayet iyi. Sorgular, hızlı yanıt süresiyle görünümü güncel tutar. Sorgudaki gecikmeler, bir sonraki işlem için oluşturulmasına neden oluyor. Üretimde, bu bir problem değil.

+1

Teşekkür ederim, bu sadece peşindeyim! Benim içgüdüm erken optimizasyona karşıydı ve hepsini tek bir veritabanında tutmaya başladım, ancak günlükleri bölme önerisi iyi geliyor. – stompydan

İlgili konular