2011-10-10 15 views
5

मेरे पास एसक्यूएलकेमी का उपयोग करके एक पिलोन एप्लिकेशन है जो SQLite के साथ बैकएंड के रूप में है। मैं जानना चाहूंगा कि SQLite पर जाने वाले प्रत्येक पठन ऑपरेशन हमेशा हार्ड डिस्क पढ़ने के लिए नेतृत्व करेगा (जो रैम की तुलना में बहुत धीमी है) या कुछ कैशिंग तंत्र पहले से ही शामिल हैं।क्या SQLite डिस्क को हमेशा मारता है?

  • SQLite रैम में डेटाबेस के उप-समूह को तेज़ पहुंच के लिए बनाए रखता है?
  • क्या ओएस (लिनक्स) स्वचालित रूप से ऐसा कर सकता है?
  • SQLite के बजाय उत्पादन डेटाबेस (MySQL या PostgreSQL) का उपयोग कर मैं कितनी गति से उम्मीद कर सकता हूं?

उत्तर

3
  1. हाँ, SQLite अपनी ही स्मृति कैश है। उदाहरण के लिए PRAGMA cache_size देखें। इसके अलावा, यदि आप स्पीडअप की तलाश में हैं, तो PRAGMA temp_store देखें। अपने कैश को लागू करने के लिए एपीआई भी है।

  2. SQLite डेटाबेस ओएस के लिए सिर्फ एक फ़ाइल है। इसके लिए कुछ भी स्वचालित रूप से नहीं किया जाता है। कैशिंग होने के लिए, sqlite.h परिभाषित करता है और रनटाइम प्रगामा सेटिंग्स हैं।

  3. यह निर्भर करता है कि इसके बदले में आपको कई मंदी मिल जाएगी।

+1

# 2 पर विचार करना चाहिए, क्या आपका मतलब है कि स्क्लाइट वास्तव में ओएस को डिस्क कैश का उपयोग न करने के लिए कहता है? –

+0

@Mechanicalsnail मेरा मतलब है कि ओएस SQLite डेटाबेस के लिए "स्वचालित रूप से" कुछ भी नहीं करेगा जो यह किसी अन्य फ़ाइल के लिए नहीं करता है। – hamstergene

+0

लेकिन फिर कैश नहीं किया जाएगा (और लिखते हैं)? –

0

कितना speedup मैं एक उत्पादन डेटाबेस (MySQL या postgres) SQLite के बजाय का उपयोग करके उम्मीद कर सकता है?

क्या आप उत्पादन सर्वर वातावरण में स्क्लाइट का उपयोग कर रहे हैं? आप शायद नहीं होना चाहिए:

Appropriate Uses for Sqlite से:

SQLite सामान्य रूप से एक वेबसाइट के लिए डेटाबेस बैकेंड के रूप में कार्य करेंगे। लेकिन यदि आप वेबसाइट इतनी व्यस्त हैं कि आप डेटाबेस घटक को अलग मशीन पर विभाजित करने के बारे में सोच रहे हैं, तो आपको निश्चित रूप से SQLite के बजाय एंटरप्राइज़-क्लास क्लाइंट/सर्वर डेटाबेस इंजन का उपयोग करने पर विचार करना चाहिए।

SQLite को अच्छी तरह से डिज़ाइन नहीं किया गया है, और कभी भी स्केल करने का इरादा नहीं था; प्रदर्शन के लिए SQLite व्यापार सुविधा; यदि प्रदर्शन एक चिंता है, तो आपको एक और डीबीएमएस

+6

आपके द्वारा विशेष रूप से लिंक किया गया पृष्ठ कहता है कि SQLite * प्रति दिन 100K से 1000K हिट तक उत्पादन वातावरण में अच्छी तरह से काम करता है (या, जैसा कि वे कहते हैं, 99.9% वेब साइटें)। यह तब होता है जब आप वेब सर्वर से अलग सर्वर पर डेटाबेस ले जाते हैं, जो कि वे एक वास्तविक डेटाबेस सर्वर का सुझाव देते हैं। –

संबंधित मुद्दे