2011-10-10 15 views
5

SQLAlchemy kullanarak arka uç olarak SQLite kullanarak bir Pylons uygulamasına sahibim. SQLite'ye giden her okuma işleminin her zaman bir sabit diskin okunmasına (RAM'e göre çok yavaş) neden olacağını veya bazı önbellek mekanizmalarının zaten dahil olup olmadığını bilmek isterim.SQLite her zaman okunan diski okuyor mu?

  • SQLite, daha hızlı erişim için veritabanındaki RAM alt kümesini korur mu?
  • İşletim Sistemi (Linux) bunu otomatik olarak yapabilir mi?
  • SQLite yerine bir üretim veritabanı (MySQL veya PostgreSQL) kullanarak ne kadar hızlanma bekleyebilirim?

cevap

3
  1. Evet, SQLite kendi hafıza önbelleği bulunur. Örneğin, PRAGMA cache_size’u kontrol edin. Ayrıca, hızlandırıcılar arıyorsanız, PRAGMA temp_store'u kontrol edin. Kendi önbelleğinizi uygulamak için API da vardır.

  2. SQLite veritabanı yalnızca işletim sistemi için bir dosyadır. Bunun için hiçbir şey 'otomatik' yapılmaz. Önbelleğe alınmayı sağlamak için, sqlite.h tanımları ve çalışma zamanı ayarları vardır.

  3. Buna göre, bunun yerine yavaşlama elde edeceğiniz birçok durum vardır.

+1

On # 2 üzerinde düşünmelisiniz, bu sqlite gerçekten işletim sistemi disk önbelleğini kullanmamak için söyler? –

+0

@Mechanicalsnail OS, SQLite veritabanı için başka bir dosya için yapmadığı için “otomatik” bir şey yapmaz. – hamstergene

+0

ama sonra okuma (ve yazma) önbelleğe alınmaz mı? –

0

ne kadar hızlanma Bir üretim veritabanı (MySQL veya postgres) yerine sqlite ait kullanılarak bekler?

Üretim sunucusu ortamında sqlite kullanıyor musunuz? Muhtemelen olmamalı:

Appropriate Uses for Sqlite Gönderen:

SQLite normalde bir web sitesine veri tabanı için iyi çalışır. Ama web sitesi çok meşgulse, veritabanı bileşenini ayrı bir makineye bölmeyi düşünüyorsanız, kesinlikle SQLite yerine kurumsal sınıf bir istemci/sunucu veritabanı motoru kullanmayı düşünmelisiniz.

SQLite, iyi tasarlanmamıştır ve iyi ölçeklenmeyi amaçlamamıştır; SQLite, performans için kolaylık sağlıyor; performans bir endişe varsa, başka bir DBMS

+6

Bağlandığınız sayfa, SQLite * 'in * günde 100K - 1000K isabet (ya da web sitelerinin% 99,9'u) gibi bir üretim ortamında iyi çalıştığını özellikle söylüyor. Sadece veritabanını, gerçek bir veritabanı sunucusu önerdiği web sunucusundan ayrı bir sunucuya taşıdığınızda. –

İlgili konular