2008-12-10 11 views
7

मैं रेल 2.0 का उपयोग शुरू करने के तरीके पर कुछ ट्यूटोरियल पढ़ रहा हूं।रेल 2.0: क्यों sqlite3 का उपयोग नहीं करते?

(टाइम आउट: प्रतिभा वेबसाइट का नाम विचार लिखने में कोई त्रुटि मैं सिर्फ बनाया से कल्पना की: "। TutoRAILS"। क्षमा करें, वापस मेरे सवाल का)

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

उत्तर

11

SQLite एक अच्छा इंजन है, लेकिन यह अभी भी प्रक्रिया (या डेस्कटॉप) शैली इंजन में है। इस प्रक्रिया में इंजन संगामिति के संदर्भ है कि उन्हें वेब साइटों या एक साथ लेखन पहुँच का एक बहुत के लिए क्षमता के साथ अन्य परिदृश्यों के लिए MySQL की तरह सर्वर आधारित इंजन पर एक मौलिक गरीब विकल्प बनाने में निहित कमजोरियों है।

SQLite वेब साइट पर इस पेज देखें:
http://www.sqlite.org/whentouse.html

SQLite आमतौर पर मध्यम यातायात वेबसाइटों

और

को कम करने के लिए डेटाबेस इंजन के रूप में महान काम करेंगे यदि ... आप एक अलग मशीन पर डेटाबेस घटक को विभाजित करने की सोच रहे हैं, तो आपको निश्चित रूप से चाहिए SQLite के बजाय एंटरप्राइज़-क्लास क्लाइंट/सर्वर डेटाबेस इंजन का उपयोग करने पर विचार करें।

+3

उन्होंने यह भी कहते हैं कि: 'किसी भी साइट है कि कम से कम 100K हिट हो जाता है/दिन SQLite के साथ ठीक काम करना चाहिए। 100 के हिट/दिन का आंकड़ा एक रूढ़िवादी अनुमान है, न कि कठोर ऊपरी बाउंड। SQLite को 10 गुणा यातायात की मात्रा के साथ काम करने के लिए प्रदर्शित किया गया है। उस ने कहा कि एसक्यूलाइट 95% इंटरनेट साइटों के लिए ठीक है। – Niteriter

1

मुझे लगता है कि यह मुख्य रूप से ट्यूटोरियल पर कम घर्षण स्तर रखने का एक मामला है। यदि आप एक नए हैं, तो मैं केवल MySQL की अनुशंसा करता हूं क्योंकि ट्यूटोरियल करना आसान होगा। एसक्लाइट अन्यथा एक अच्छा डेस्कटॉप समाधान है।

+0

दी मैं रेल का उपयोग नहीं करते हैं, लेकिन मैं व्यक्तिगत रूप से SQLite पाया है ज्यादा MySQL से उपयोग में आसान –

4

SQLite भयानक है, लेकिन यह कई समवर्ती पाठकों और लेखकों के साथ प्रदर्शन के मुद्दों है।

तरह योएल उद्धृत, यदि आपकी साइट कम यातायात है यह शायद ही कभी एक समस्या हो जाएगा, लेकिन मध्यम गतिविधि पर मैं कभी कभी डीबीएस बंद कर दिया है (और फांसी पर लटका दिया क्वेरी) मिलता है। इस मामले में एकाधिक समवर्ती उपयोगकर्ताओं के लिए बेहतर समर्थन के साथ एक डीबी बेहतर है।

व्यक्तिगत रूप से, यदि मैं डीबी तक पहुंचने के लिए डीबी-अज्ञेय परत का उपयोग करता हूं तो एक से दूसरे में स्विच करना आसान होता है, इसलिए SQLite के साथ शुरू करना आसान है और आवश्यक होने पर एक अलग स्थान पर जाना आसान है।

3

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

हालांकि, अगर और जब एक परियोजना बिंदु है जहां आप इसे की तैनाती हो जाएगा करने के लिए हो जाता है, मैं MySQL या PostgreSQL बेहतर प्रदर्शन के लिए सुझाव है।

SQLite के छोटे एम्बेडेड अनुप्रयोगों के लिए इसके लाभ भी हैं या यदि आपके पास एक उपकरण के लिए डेटाबेस चलाने के लिए ओवरहेड नहीं है जो केवल कुछ लोग उपयोग करेंगे।

0

ध्यान दें कि SQLite Camping ढांचे के लिए डिफ़ॉल्ट इंजन है।समझ में आता है क्योंकि दोनों छोटे और तेज हैं,

2

रेल 2.0 के बाद से, sqlite3 डिफ़ॉल्ट डेटाबेस है, इसलिए निश्चित रूप से इसके खिलाफ पूर्वाग्रह नहीं है। कई रेल ट्यूटोरियल रेल 2.0 की भविष्यवाणी करते हैं, हालांकि, जब डिफ़ॉल्ट डेटाबेस MySQL था।

कई अन्य लोगों के रूप में उल्लेख किया है, sqlite3 जल्दी और आसानी से एक आवेदन को ठीक और चालू करने के लिए एक अच्छा डेटाबेस है। आपके रेल विकास पर्यावरण के लिए, इसमें पैरों हैं - यह संभवतः ठीक काम करेगा, भले ही आपका ऐप जटिल हो। रेल परीक्षण वातावरण के लिए, यह भी एक बहुत अच्छा विकल्प है - यह बहुत तेजी से है और सबसे परीक्षण अपेक्षाकृत सरल डेटाबेस मांगों को है और संगामिति की आवश्यकता नहीं करने के लिए है या नहीं तो sqlite3 सीमाओं में चलाने करते हैं।

हालांकि, कई के लिए, अगर नहीं सबसे, उत्पादन वेब साइटों, एक डीबी अधिक संगामिति के लिए बनाया गया के लिए कहा जा सकता है - MySQL, Postgres, आदि ..

2

एक रेल ब्लॉग इंजन SQLite की तरह कुछ के लिए काम करेंगे बहुत अधिक मात्रा में भी बहुत अच्छी तरह से क्योंकि यह सब पढ़ता है और बहुत कम लिखते हैं। वास्तव में अपने हिट के बहुमत कैश्ड जाएगा पृष्ठों - अगर आप टिप्पणियों की अनुमति और कैसे सक्रिय अपनी टिप्पणी धागे हैं पर निर्भर करता है - आप एक ही रेल की प्रक्रिया के साथ दूर हो सकती है क्योंकि अपने वेब सर्वर लगभग हर अनुरोध को संभाल लेंगे।

एक SQLite डेटाबेस प्रत्येक रेल प्रक्रिया करने के लिए फाइल पर एक फाइल सिस्टम लॉक अधिक से लड़ने के लिए है के साथ लिखते हैं तो आप एक बहुत अवरुद्ध अगर आप प्रक्रियाओं लेखन के लिए बहुत कुछ है पहुंच जाएंगे। इस बारे में सोचने का एक तरीका यह है कि आपके पास कितने रेल प्रक्रियाएं होंगी ... यदि इसे 3-4 से अधिक की आवश्यकता होगी तो शायद SQLite एक अच्छी पसंद नहीं है।

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