2010-04-02 6 views
6

SQLite इन-मेमोरी डेटाबेस को साफ़ करने से रोकने के लिए, किसी को डेटाबेस तक पहुंचने के लिए एक ही कनेक्शन का उपयोग करना होगा। हालांकि, उसी कनेक्शन का उपयोग SQLite को डेटाबेस तक पहुंच सिंक्रनाइज़ करने का कारण बनता है। इस प्रकार, यदि मेरे पास एक मेमोरी डेटाबेस के विरुद्ध पढ़े जाने वाले कई धागे हैं, तो यह एक बहु-कोर मशीन पर धीमा है जो फ़ाइल-समर्थित डेटाबेस के विरुद्ध चल रहे सटीक कोड की तुलना में धीमा है।SQLite डेटाबेस स्कैनरेंसी के साथ स्केल कर सकते हैं?

क्या दोनों दुनिया के सर्वश्रेष्ठ प्राप्त करने का कोई तरीका है? यही है, एक इन-मेमोरी डेटाबेस जो डेटाबेस को एकाधिक, समवर्ती कॉल की अनुमति देता है?

उत्तर

3

उत्तर नहीं है। मैंने SQLite उपयोगकर्ता समूह से पूछा और पावेल इवानोव से निम्नलिखित प्रतिक्रिया प्राप्त की:

नहीं, SQLite किसी भी डेटाबेस में पूर्ण समवर्ती पहुंच का समर्थन नहीं करता है। केवल समेकन जो आप अर्जित कर सकते हैं साझा कैश के बिना ऑन-डिस्क डेटाबेस है (इसलिए वास्तव में मेमोरी में डेटाबेस की कई प्रतियां हैं)। बेशक मैं विभिन्न प्रक्रियाओं से सहमति के विकल्प पर विचार नहीं करता हूं।

0
यहां से

मैं समझ गया कि आप निर्धारित करते हैं तो पेज आकार और कैश आकार इतना बड़ा पूरे डेटाबेस को रोकने के लिए, संचालन कैश से पूरा किया जाएगा पढ़ सकते हैं और प्रदर्शन के लगभग बराबर हो जाएगा कि जवाब है हां http://www.sqlite.org/faq.html#q6

+0

इसका मतलब है कि यह एकाधिक धागे से उपयोग करना सुरक्षित है। उसे सत्यापित किया जा सकता है। लेकिन यह स्केल नहीं करता है - यह मेरे दोहरे कोर के केवल एक कोर का उपयोग करता है। तो यह प्रदर्शन की कीमत पर सुरक्षा है। स्पष्टीकरण के लिए अपना शीर्षक अपडेट कर रहा है। –

+0

"यह केवल एक कोर का उपयोग करता है" - इसका मतलब है कि आपके धागे इस तरह से भेजे गए थे! यह SQL लॉकिंग या SQLite में अन्य सिंक्रनाइज़ेशन के कारण हो सकता है। यदि आप वास्तव में डीबी + कॉन्सुरेंसी चाहते हैं तो आपको साझा डीबी को अंतिम फ्लशिंग के साथ कुछ कस्टम कोड पर विचार करना चाहिए। मुझे लगता है कि आप स्क्लाइट से बहुत ज्यादा चाहते हैं। – Andrey

+1

बिंदु यह है कि यह फ़ाइल-आधारित SQLite डेटाबेस (100% CPU खपत) के साथ काम करता है, लेकिन इन-मेमोरी डेटाबेस के साथ नहीं। यदि SQLite इस परिदृश्य का समर्थन नहीं करता है तो यह ठीक है लेकिन मुझे उद्धरण की आवश्यकता है। –

2

है एक मेमोरी डेटाबेस।

+0

+1 दिलचस्प विचार - मैं इसे ध्यान में रखूंगा। –

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

  • कोई संबंधित समस्या नहीं^_^