मेरे पास एक SQLite डेटाबेस है जिसका उपयोग दो प्रक्रियाओं द्वारा किया जाता है। मैं सोच रहा हूं, SQLite के सबसे हाल के संस्करण के साथ, जबकि एक प्रक्रिया (कनेक्शन) डेटाबेस को लिखने के लिए एक लेनदेन शुरू करती है, दूसरी प्रक्रिया डेटाबेस से एक साथ पढ़ने में सक्षम हो जाएगी?क्या मैं एकाधिक कनेक्शन से समेकित SQLite डेटाबेस को पढ़ और लिख सकता हूं?
उत्तर
मैं विभिन्न स्रोतों से जानकारी एकत्र की, ज्यादातर sqlite.org से, और उन्हें एक साथ रखा:
पहले, डिफ़ॉल्ट रूप से, कई प्रक्रियाओं एक ही SQLite डेटाबेस एक ही समय में खुला हो सकता है, और कई पढ़ने पहुंच सकते हैं समानांतर में संतुष्ट रहें।
लेखन के मामले में, डेटाबेस को एक ही लिखने के लिए डेटाबेस को कम समय के लिए डेटाबेस लॉक करता है, कुछ भी नहीं, यहां तक कि पढ़ना, डेटाबेस फ़ाइल तक पहुंच सकता है।
संस्करण 3.7.0 के साथ शुरुआत, एक नया “Write Ahead Logging” (WAL) विकल्प उपलब्ध है, जिसमें पढ़ने और लेखन समवर्ती रूप से आगे बढ़ सकते हैं।
डिफ़ॉल्ट रूप से, WAL सक्षम नहीं है। WAL चालू करने के लिए, SQLite दस्तावेज़ देखें।
journal_mode = WAL मेरी समस्या हल करता है! –
SQLite3 स्पष्ट multiple connections अनुमति देता है:
(5) कर सकते हैं एक से अधिक आवेदन या एक ही आवेदन का उपयोग एक ही समय में एक एकल डाटाबेस फ़ाइल के कई उदाहरण?
एकाधिक प्रक्रियाओं में एक ही समय में एक ही डेटाबेस खुल सकता है। एकाधिक प्रक्रियाएं एक ही समय में एक चयन कर सकती हैं। लेकिन केवल एक प्रक्रिया समय में किसी भी समय डेटाबेस में परिवर्तन कर सकती है।
बंटवारे कनेक्शन के लिए, का उपयोग SQLite3 shared cache:
संस्करण 3.3.0 के साथ शुरू, SQLite एक विशेष "साझा-कैश" मोड (डिफ़ॉल्ट रूप से अक्षम) संस्करण में
शामिल 3.5.0, साझा-कैश मोड संशोधित किया गया था ताकि उसी कैश को एकल थ्रेड के बजाय पूरी प्रक्रिया में साझा किया जा सके।
5.0 को सक्षम करने से साझा-संचय मोड
साझा-कैश मोड एक प्रति प्रक्रिया के आधार पर सक्षम है। सी इंटरफ़ेस का उपयोग करके, निम्न API का उपयोग साझा-कैश मोड को सक्षम या अक्षम करने के लिए किया जा सकता है:
int sqlite3_enable_shared_cache (int);
प्रत्येक कॉल sqlite3_enable_shared_cache() प्रभाव बाद के डेटाबेस कनेक्शन sqlite3_open(), sqlite3_open16 (उपयोग कर बनाई गई है), या sqlite3_open_v2()। डेटाबेस कनेक्शन जो पहले से मौजूद हैं अप्रभावित हैं। Sqlite3_enable_shared_cache() के लिए प्रत्येक कॉल एक ही प्रक्रिया के भीतर सभी पिछली कॉल ओवरराइड करता है।
- 1. मैं केकेपीएचपी में सत्र डेटा कैसे बना सकता हूं, लिख सकता हूं और पढ़ सकता हूं?
- 2. मैं बड़ी फ़ाइलों को कैसे पढ़ सकता हूं, प्रतिस्थापित और लिख सकता हूं?
- 3. मैं कार्यालय स्थापित किए बिना प्रोग्रामेटिक रूप से एक एक्सेल लिख, पढ़, लिख सकता हूं?
- 4. मैं Malbolge में एक फ़ाइल को कैसे पढ़ और लिख सकता हूं?
- 5. क्या मैं SQLite डेटाबेस एन्क्रिप्ट कर सकता हूं?
- 6. मैं जावा में फ़ाइल से/बिट्स को बिट्स कैसे पढ़/लिख सकता हूं?
- 7. क्या मैं सिस्टम() कमांड के बिना सी में रूटिंग टेबल को पढ़/लिख सकता हूं?
- 8. मैं एक COM पोर्ट का अनुकरण कैसे कर सकता हूं, डेटा लिख सकता हूं और उससे डेटा पढ़ सकता हूं?
- 9. कोडनिर्देशक - एकाधिक डेटाबेस कनेक्शन
- 10. क्या मैं छोटे से स्प्रिंग कॉन्फ़िगरेशन फ़ाइल लिख सकता हूं?
- 11. एकाधिक भाषाओं के लिए एकाधिक SQLite डेटाबेस?
- 12. मैं प्रति-पिक्सेल आधार पर जेपीईजी डेटा कैसे पढ़ और लिख सकता हूं?
- 13. सिम्फनी 2: एकाधिक और गतिशील डेटाबेस कनेक्शन
- 14. SQLite कनेक्शन और लॉक करना
- 15. ओपनसीवी में एक्सएमएल-स्ट्रिंग से मैं कैसे पढ़ सकता हूं?
- 16. क्या मैं इस कोड को बेहतर लिख सकता हूं?
- 17. क्या मैं PHP से अपना डेटाबेस बना सकता हूं?
- 18. मैं SQLite डेटाबेस में खुले कनेक्शन की संख्या कैसे गिन सकता हूं?
- 19. मैं कई SQLite डेटाबेस कैसे विलय कर सकता हूं?
- 20. मैं जीपीयू लोड कैसे पढ़ सकता हूं?
- 21. मैं SQLite डेटाबेस
- 22. मल्टीथ्रेडिंग और डेटाबेस कनेक्शन
- 23. मैं केकेपीएचपी को SQLite डेटाबेस से कैसे जोड़ूं?
- 24. SQLite डेटाबेस और कर्सर
- 25. सी # में, मैं अपने web.config फ़ाइल कनेक्शन स्ट्रिंग में संग्रहीत कनेक्शन स्ट्रिंग कैसे पढ़ सकता हूं?
- 26. मैं .docx फ़ाइल कैसे पढ़ सकता हूं?
- 27. मैं डब्ल्यूसीएफ लॉगिंग को कैसे सक्षम कर सकता हूं ताकि वह डेटाबेस को लिख सके?
- 28. मैं ASP.NET से एक temp फ़ाइल कहां लिख सकता हूं?
- 29. मैं PHP से पीएनजी मेटाडाटा कैसे पढ़ सकता हूं?
- 30. क्या मैं जावास्क्रिप्ट में आईओएस (कोको) ऐप्स लिख सकता हूं?
संबंधित प्रश्न यहां देखें .. http: // stackoverflow।कॉम/प्रश्न/12117016/रणनीतियों के लिए-समवर्ती-पढ़ने-लेखन-और-पढ़ने-इन-स्क्लाइट/24038860 # 24038860 – Nepster