2012-03-07 19 views
14

मैं तेजी से लोडिंग के लिए बाइनरी मोड में कुछ फ़ाइल या निर्देशिका में पूर्ण एम्बेडेड एच 2 इन-मेमोरी डेटाबेस को कैसे सहेज/लोड कर सकता हूं।डिस्क में इन-मेमोरी एच 2 डेटाबेस को सहेजना

मैं इसे कैशिंग डेटा के लिए उपयोग करना चाहता हूं इसलिए मुझे हर बार बनाने की तालिका/सम्मिलित खंडों की सभी पंक्तियां चलाने की ज़रूरत नहीं है।

+1

क्या आप सिर्फ डीबी बनाम इन-मेमोरी संस्करण का उपयोग कर सकते हैं? मुझे लगता है कि आप एक ढांचे (उदा। Grails) का उपयोग कर कस्टम विकास कर रहे हैं जिसका आपने उल्लेख नहीं किया है। – Marc

+0

यह एक कस्टम प्रोजेक्ट है जिसमें कोई ढांचा शामिल नहीं है। ईमानदार होने के लिए मुझे यकीन नहीं है कि फ़ाइल डीबी के प्रदर्शन प्रभाव क्या हैं, मुझे गति चाहिए और डेटा हमेशा मेमोरी में फिट होगा, इसलिए मुझे लगता है कि मेमोरी डीबी सबसे तेज़ होगा। डेटा केवल प्रश्न ही होगा, इसलिए मैं कोई अनावश्यक बचत जांच नहीं चाहता हूं। – mikkom

+0

@marc 'फ़ाइल डीबी' का उपयोग करना एक अलग बात है। यह यूनिट टेस्ट में बहुत उपयोगी होगा यदि कोई जावा या किसी अन्य भाषा के साथ मेमोरी टेस्ट डेटा सेट सेट कर सकता है, फिर डेटासेट बैकअप लें और प्रत्येक टेस्ट के बाद प्रारंभिक स्थिति में पुनर्स्थापित करने के लिए इसका इस्तेमाल करें। –

उत्तर

8

इन-मेमोरी डेटाबेस का उपयोग करने के बजाय, आप नियमित (स्थिर) डेटाबेस का उपयोग कर सकते हैं। तब भी आप इन-मेमोरी टेबल का उपयोग कर सकते हैं (मेमोरी टेबल बनाएं)।

डिस्क पर पूरी तरह से स्मृति डेटाबेस को बनाए रखने का सबसे आसान तरीका SCRIPT TO 'fileName' SQL कथन का उपयोग करना है। यह एक एसक्यूएल स्क्रिप्ट बना देगा। डेटा टेक्स्ट फॉर्म में संग्रहीत होता है, जो सबसे कुशल समाधान की तरह नहीं लगता है। हालांकि आम तौर पर बाधा डिस्क होती है और टेक्स्ट स्वरूपण/विश्लेषण नहीं करती है।

एक और विकल्प एक और डेटाबेस बनाना है, इन-मेमोरी डेटाबेस के साथ तालिकाओं को लिंक करें (create linked table या link_schema फ़ंक्शन का उपयोग करके), और फिर टेबल को बनाए रखने के लिए create table as select का उपयोग करें।

+0

खंडों को सम्मिलित करना मैं वर्तमान में करता हूं और पाठ के 1 गीगा के लिए इसमें कुछ समय लगता है और यह io नहीं है। क्षमा करें, लेकिन मुझे बाइनरी विकल्प चाहिए। – mikkom

+0

मेरा जवाब अपडेट किया गया। एससीआरआईपीटी के लिए: यदि यह आईओ नहीं है, तो यह क्या है? क्या आपने एक प्रोफाइलिंग टूल का उपयोग किया है, जैसे बिल्ट-इन प्रोफाइलर? –

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

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