2013-06-03 12 views
7

मैं ऐसे ऐप पर काम कर रहा हूं जो बहुत सारे डेटा ब्लॉक (तारकीय स्थिति और चमक डेटा) को पार्सिंग, प्रसंस्करण और स्वरूपित करने जा रहा है। डेटा की एक रात में एक दर्जन फाइलें हो सकती हैं, जिनमें से प्रत्येक में कई सौ रेखाएं होती हैं। मेरे पास भंडारण और कच्चे डेटा की पहुंच के लिए दो विकल्प हैं: डेटाबेस (MySQL) या JSON फ़ाइलें। यह सब एक स्थानीय वातावरण में है, इसलिए बैंडविड्थ और अनुरोध के समय लगभग नगण्य हैं - लेकिन मुझे यह कहने के विकल्प के बारे में पर्याप्त जानकारी नहीं है कि कौन सा इष्टतम है।स्थानीय भंडारण: MySQL बनाम जेएसओएन?

क्या आप, प्रबुद्ध एसओ समुदाय, क्या आप अपना ज्ञान साझा कर सकते हैं कि कोई स्पष्ट विकल्प है या नहीं? मुझे वास्तव में डेटा को खंडित करने की आवश्यकता नहीं है, इसलिए MySQL की रिलेशनल क्षमताएं म्यूट हैं - बस सोच रहा है कि कोई तेज या अधिक हल्का है या नहीं।

(मेरी सबसे अच्छी कोशिश की चकमा वर्जित "जो बेहतर है" के लिए - अगर मैं reword या स्पष्ट कर सकते हैं, तो कृपया मुझे बताएं!)


संपादित: गंभीरता से, अनाम पास वोट नहीं सहायक होते हैं । मैं सीखना चाहता हूं कि मेरे प्रश्नों को बेहतर तरीके से कैसे बनाया जाए ताकि हर किसी के समय बर्बाद न करें - बताएं कि मैं इसे बदलने के लिए क्या कर सकता हूं!

+0

यदि आप फ़ाइलों से निपट रहे हैं, तो आप उन्हें सीधे अपने सर्वर पर क्यों नहीं बचा सकते हैं। इस तरह, आपको SQL क्वेरी के कारण या JSON से पुनर्प्राप्ति के कारण ओवरहेड के बारे में चिंता करने की आवश्यकता नहीं होगी। – ShuklaSannidhya

+0

@ShuklaSannidhya .json और .sql इस डेटा के लिए दो निर्यात विकल्प हैं। यहां तक ​​कि अगर मेरे पास कच्ची टेक्स्ट फाइलें थीं, तो मुझे उन्हें मैन्युअल रूप से पार्स करना होगा और डेटा पैटर्न के संभावित अपवादों के लिए खाता होगा - JSON कम से कम किसी ऑब्जेक्ट में लोड हो जाता है। – CodeMoose

+0

मुझे लगता है कि यहां सबसे बड़ा सवाल यह है कि "इसे सहेजने के बाद आप इस डेटा तक कैसे पहुंचेंगे?" –

उत्तर

6

यदि आप हमेशा पूरे डेटा सेट को सहेजने और लोड करने जा रहे हैं, और जटिल प्रश्नों की आवश्यकता नहीं है, तो JSON शायद सरल और अधिक कुशल विधि है। लेकिन यदि आप वास्तव में सुनिश्चित करना चाहते हैं, तो आपको उन्हें बेंचमार्क करना चाहिए।

एसक्यूएलसाइट जैसे MySQL से कम ओवरहेड वाले डेटाबेस भी हैं।

+0

+1 – CodeMoose

3

क्या आप लगातार डेटा सेट को लोड और उपयोग करने जा रहे हैं, या आप वास्तव में इसका हिस्सा चाहते हैं?

यदि आप कुछ डेटाबेस चाहते हैं, तो विशेष रूप से इस मामले में आपके डेटा-सेट से पूछने की क्षमता के लिए डेटाबेस (mySql या SQLite या जो कुछ भी) का उपयोग करें। (सुरक्षा और सामान्यीकरण और मानकीकरण भी अच्छा खा लिया।)

यदि आप कुछ भी डेटाबेस प्रदान नहीं करना चाहते हैं तो कच्ची फ़ाइल (सीएसवी, एक्सएमएल, जेसन) का उपयोग करें, और वह पूरे डेटा-सेट को स्मृति में लोड करना चाहते हैं ।

+0

धन्यवाद डौग! डेटा लोड करने जा रहा एकमात्र समय पूरे ब्लॉक का विश्लेषण पूरी तरह से करना है, इसलिए पूछताछ अप्रासंगिक है - अनुमान है कि मैं जेसन के साथ जा रहा हूं! पूरी चीज पढ़ने के लिए – CodeMoose

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