2010-07-20 24 views
12

कौन सा अधिक संसाधनों और दक्षता के मामले में करने के लिए महंगा है, फ़ाइल पढ़ने/लिखने ऑपरेशन या डेटाबेस पढ़ें/लिखें आपरेशनफ़ाइल पढ़ें/लिखें डाटाबेस बनाम पढ़ें/लिखें

+1

@OP, क्या आप हमें कुछ संदर्भ दे सकते हैं? –

उत्तर

10

मैं शुरू में कहने के लिए डेटाबेस पढ़ने/लिखने जा रहा था , हाथ नीचे, क्योंकि इसमें डीबी ओवरहेड के शीर्ष पर अपेक्षित फ़ाइल io शामिल होगा, लेकिन फिर यह इतना आसान नहीं लगा। यदि आपके पास पूरी डीबी मेमोरी में लोड हो गई है, तो पढ़ना लगभग तात्कालिक होगा क्योंकि इसमें कोई फ़ाइल आईओ शामिल नहीं है।

लेखन सामान्य रूप से तेज़ी से भी होंगे, क्योंकि डीबी इंजन को लौटने से पहले फ़ाइल IO को पूरा करने के लिए इंतजार नहीं करना पड़ता है क्योंकि वे "आलसी लेखन" दृष्टिकोण ले सकते हैं।

दूसरी ओर एक खराब ट्यूनेड डेटाबेस, किसी भी फ़ाइल आधारित आईओ की तुलना में धीमी गति के आदेश होगा। डीबी ट्यूनिंग मामलों। बहुत।

+0

अधिक से अधिक, यह एक फ़ाइल इंजन को लागू किए बिना, सरल फ़ाइल-आईओ का उपयोग करके आवश्यक डेटा को खींचने के लिए बहुत अधिक अक्षम हो सकता है, डेटाबेस का उपयोग करके बनाम सैकड़ों लोगों ने आंकड़ों को तेजी से ढूंढने के लिए वर्षों का विकास किया है। – nos

3

यह एक भरा सवाल है। हम किस आकार की फाइलों के बारे में बात कर रहे हैं? गीगाबाइट? इसके अलावा, डीबी का किस प्रकार और आकार? मैं अक्सर संयोजन का उपयोग करता हूं। क्या आप किसी भी डेटा स्तर अखंडता को नियंत्रित करना चाहते हैं? यदि ऐसा है, तो आप इसे डीबी में छोड़ना चाहेंगे अन्यथा आपको आवेदन स्तर पर उन सभी को नियंत्रित करना होगा।
इस पर एक अच्छा निर्णय लेने के लिए बहुत सारे कारक हैं। उदाहरण के लिए, जब मैं अस्थायी डेटा बना रहा हूं कि मैं लगातार नहीं चाहता हूं तो मैं फ़ाइल का उपयोग करता हूं, लेकिन यदि मैं डेटा का उपयोग कर रहा हूं, तो मैं लगातार या बैक अप लेना चाहता हूं, तो मैं एक डीबी का उपयोग करता हूं।
आर्किटेक्चर के साथ यह महत्वपूर्ण है। यदि हार्डवेयर, लाइसेंसिंग, या सुविधा एक मुद्दा है तो शायद आपको डीबी सर्वर आदि के बुनियादी ढांचे की आवश्यकता नहीं है। लेकिन यदि आपके पास संसाधन हैं तो डीबी परत जोड़ना सही विकल्प हो सकता है।

0

कोई आसान जवाब नहीं है। किसी भी डेटाबेस के साथ आपके पास हर समय चलने का ओवरहेड होता है। लेकिन फिर जब आप इसे एक्सेस करते हैं तो फ़ाइल तक पहुंचने से आम तौर पर बहुत तेज़ होता है। यदि आप केवल कुछ मुट्ठी भर पहुंच के बारे में बात कर रहे हैं तो आपको बहुत अंतर दिखाई नहीं देगा। लेकिन जब यह सैकड़ों, हजारों, और प्रति मिनट लाखों तक पहुंच जाता है तो डेटाबेस बहुत तेज होगा। और जैसा कि टिम ऊपर बताया गया है, एक खराब ट्यून डेटाबेस एक फ्लैट फ़ाइल तक पहुंचने से बहुत धीमा हो सकता है।

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