SORU
13 Mayıs 2010, PERŞEMBE


Ne kadar hızlı Berkeley DB SQL SQLite karşılaştırılır?

Oracle son zamanlarda a Berkeley DB back-end to SQLite yayınladı. Yüzlerce-of-megabayt çok iyi yararlanabilir SQLite veritabanı var "geliştirilmiş performans, eşzamanlılık, ölçülebilirlik ve güvenilirlik", ama Oracle site herhangi bir eksikliği gibi görünüyorölçümlerigeliştirmeler. Herkes burada bir kıyaslama yaptı?

CEVAP
18 Mayıs 2010, Salı


BDB SQLite kod beta Değerlendirme ve biri de katıldım bir ele almaya çalıştım şey performans farkı oldu. Bu noktada, En az diğeri kadar bulduklarımı yayınlamak edemem benim kod değerlendirme, testler ve aldığım numaraları teyit ediliyor ( bitti). Ancak, burada genelleme ve durumlar vardır ki nereye BDB özellikle SQLite üzerinde önemli performans iyileştirmeleri sunuyor yaz-eşzamanlılık gerektiren ağır yük taşıma alanı.

İki önlemler "hızlı" değil -- (1) verimlilik: ne kadar uzun, genellikle vardır tek bir işlem için XYZ vs (2) eşzamanlılık yapmak için sürer kaç kere ... birçok işler birim zamanda XYZ yapabilirsiniz. Asıl sorun adreslerini BDB büyük ölçekli eşzamanlılık -- işlem. Böylece birçok sence eş zamanlı bağlantı ve/veya veritabanı içeriğini değiştirmek için yazıyorum.

Tasarım kullanır tarafından SQLite veritabanı düzey bir maksimum var kilitleme veritabanında çalışıyor olabilir kim yazar bir anda. Böylece, SQLite işlem kuru kalır daha fazla veya daha az eş zamanlı bağlantı sayısı ile sabit yani yazma-yoğun gerçekten onun tarafından ölçülür içinde ölçülebilirlik. verimlilik (1).

Öte yandan BDB sayfa düzeyinde çoklu yazarlara izin veren kilitleme, kullanır belirli bir veritabanı içinde çalışan (çalışan olması kaydıyla sayfaları ayrı). Bu nedenle BDB oranı, potansiyel olarak sayısı artar hem verimlilik meselesi (1) ve bu yüzden onun ölçülebilirlik ve bağlantıları (2), ekleyebilirsiniz eşzamanlılık.

Suyu kaynayan ağırlıklı (yazma) eşzamanlılık. BDB daha TPS daha zorlayabilir Birden fazla yazar için SQLite. Hareket tarafından, değiştiren bir şey yani veritabanı (nasıl herhangi bir gerçek yardım salt okunur işlemler için mi?). Dedi ki, okumak için eşzamanlılık (özellikle Seçer yapmak uygulamaları), SQLite çok iyi geçebilir kilitleme çünkü BDB ile kafa kafaya artık kritik bir konudur.

Veri kümesi boyutu gelince, emin değilim. İçine bakmadım bu. Sonuçta, her ikisi de B-ağaçları depolama için kullanın. Faktörler olabilir kendi uygulamaları dikkate almak, ama araştırdığım değil. Ben SQLite incelikle MBs yüzlerce veri kümesi işleyebilir ve biliyor çift haneli GBs (ve belki de daha fazla artık bu kirli sayfayı göster uygulaması değiştirildi).

Eğer birçok bağlantıları çalıştığı bir uygulama varsa, bu nedenle, bunu değiştirmek verilen veritabanı ve sayfa bir çekişme nispeten düşük, BDB sunabilir sonra önemli performans artışı. Ama sayfa çakışması önemlidir değişken. Eğer bir oluşuyordu olan BDB bir veritabanı varsa sınırı, tek sayfa, performansını her durumda SQLite ile aynı olur o zaman sayfa düzeyinde etkili bir şekilde buraya denk Soysuzlar kilitleme veritabanı düzeyi kilitleme herkes bir şey için mücadele ediyor. Ancak, bu gibi sayısı BDB sayfaları artar (ve sayfa çekişme azaltır), TPS maksimum eş zamanlı bağlantı sayısı ile büyümeye başlar. Sonra bu noktadan itibaren, bir sonraki bellek sınırlayıcı faktör olur. Ama bu başka bir şey hikaye.

BTW, bu BDB kullanma hakkında bir makale geliyor yazma sürecinde yaşıyorum SQLite.

Makale bağlantıları:

Oracle Berkeley DB SQL API vs. SQLite API – A Technical Evaluation

Oracle Berkeley DB SQL API vs. SQLite API – Integration, Benefits and Differences

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Brandon McCrary

    Brandon McCr

    15 Ocak 2012
  • DavidParody

    DavidParody

    17 EKİM 2009
  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010