2010-07-20 5 views
12
kaynaklar ve verimlilik açısından yapılacak daha pahalıdır

, Dosya/yazma işlemi veya Veritabanı Okuma/Yazma işlemi okumaDosya Okuma/Yazma

Başlangıçta veritabanı okuma/yazma diyecektim
+1

@OP, bize biraz bağlam verebilir misiniz? –

cevap

10

DB ek yükünün üstündeki gerekli dosyayı io içereceğinden, ancak bu kadar basit olmadığını fark ettikten sonra eller aşağı. Eğer tüm DB'niz belleğe yüklendiyse, IO'nun içerdiği hiçbir dosya olmadığından okur neredeyse anında olur.

DB motoru, "tembel bir yazma" yaklaşımı alabildiğinden dönmeden önce IO dosyasının tamamlanması için beklemek zorunda kalmayacağından, genelde daha hızlı yazarlar. Kötü ayarlanmış bir veritabanı, diğer yandan, dosya tabanlı IO'dan daha yavaş büyüklükteki emirler olacaktır. DB ayarlama önemlidir. Çok.

+0

Daha da fazlası, ihtiyacınız olan verileri basit bir dosya-io kullanarak, bir veritabanı motorunu kendiniz uygulamanıza gerek kalmadan, verilerin yüzlerce insanı hızlı bir şekilde veriyi bulmak için harcadığı bir veri tabanı kullanarak çekmeniz çok daha etkisiz olabilir. – nos

3

Bu, yüklü bir sorudur. Hangi boyutta dosyaları konuşuyoruz? Gigabaytlar? Ayrıca, ne tür ve DB boyutu? Sıklıkla bir kombinasyon kullanırım. Herhangi bir veri seviyesi bütünlüğünü kontrol etmek ister misiniz? Eğer öyleyse, bunu DB'ye bırakmak isteyebilirsiniz, aksi takdirde uygulama düzeyinde tüm bunları kontrol etmeniz gerekir.
Bu konuda iyi bir karar vermek için pek çok faktör vardır. Örneğin, kalıcı olmayan bir veri oluşturduğumda, ben ısrarla kullanıyorum Dosya kullanıyorum, ancak veri kullanıyorum kalıcı veya yedek istiyorum, o zaman bir DB kullanıyorum.
Bu mimari ile birleştiğinde önemlidir. Donanım, lisans veya tesis bir sorunsa, o zaman DB sunucularının altyapısına ihtiyacınız yoktur. Ancak kaynaklarınız varsa, DB katmanı eklemek doğru seçim olabilir.

0

Kolay bir yanıt yoktur. Herhangi bir veritabanında, her zaman çalıştığı için yükünüz var. Fakat sonra eriştiğinizde, bir dosyaya erişmekten genellikle daha hızlıdır. Sadece bir avuç dolusu erişim hakkında konuşuyorsanız, çok fazla fark etmeyeceksiniz. Ancak, yüzlerce, binlerce ve milyonlarca kez eriştiğinde veritabanı çok daha hızlı olacaktır. Ve Tim'in yukarıda belirttiği gibi, zayıf ayarlanmış bir veritabanı düz bir dosyaya erişmekten çok daha yavaş olabilir.