2011-08-27 15 views
19

मैं अपने पहले बड़े पैमाने पर डेटाबेस प्रोजेक्ट का प्रयास कर रहा हूं। मेरे पास सर्वर 1 पर एक myisam mysql डीबी है जिसमें एक php ऐप है जो विभिन्न डेटा की बड़ी मात्रा में उपभोग करता है। मेरे पास phs ऐप चुनने और डेटा प्रदर्शित करने के साथ सर्वर 2 पर mysql myisam है। InnoDB को मुजाक प्रतिकृति सलाह और तकनीक

  • आप server2 MyISAM
  • मैं करने के लिए server1 InnoDB को दोहराने कर सकते हैं 1 mysql db

    1. मैं बदलने चाहिए सर्वर:

      मैं सर्वर पर इस डेटा को दोहराने के लिए 2.

      प्रश्न चाहते हैं मैं लाइव सर्वर पर ऑफलोड तनाव को कैश का उपयोग करने के इरादे से मीडिया को ब्लॉब्स के रूप में संग्रहीत कर रहा हूं। क्या मुझे फाइल सिस्टम स्टोरेज और rsync का उपयोग करना चाहिए।

    2. अन्य अनुभवी लोगों से कोई सामान्य सलाह?
  • उत्तर

    26

    यहां मेरे अनुभव के आधार पर मैं सुझाव देता हूं।

    1. आप दोनों सर्वरों के लिए एक प्रकार का इंजन (MyISAM या InnoDB) का उपयोग कर सकते हैं। मैं आप दोनों इंजनों को मिलाता हूं, आपको डेडलॉक, लेनदेन की समस्या आदि मिल सकती है ... और उन्हें ठीक करने का समय दर्दनाक हो सकता है। मुझे थोड़ी देर पहले InnoDB -> MyISAM के साथ समस्याएं थीं। अब मैंने सभी सर्वरों पर MyISAM का उपयोग किया था।

    2. मीडिया (जैसे छवियों, वीडियो या दस्तावेजों) को संग्रहीत करने के लिए आप एक एनएफएस बना सकते हैं और/usermedia जैसे फ़ोल्डर को माउंट कर सकते हैं/दोनों सर्वर एक्सेस करते हैं। इसलिए आपको हर बार rsync नहीं है। इसके अतिरिक्त, आप संदर्भ के लिए डेटाबेस में मेटा डेटा या मीडिया जानकारी को सहेज सकते हैं और डिस्क पर फ़ाइल सहेजी गई है। नोट: फ़ाइलों को सहेजने के लिए ब्लॉब का उपयोग करना मीडिया के आधार पर अच्छा हो सकता है। यदि आपके पास एक फ़ाइल है जो लगभग 1 गीगा है उदाहरण के लिए डेटाबेस पर सहेजना अच्छा विचार नहीं हो सकता है)।

    3. डेटा पुनर्प्राप्त करने के लिए कैशिंग सिस्टम का उपयोग करें (जैसे memcached)। उदाहरण के लिए, यदि आप डेटा का अनुरोध करते हैं और आपको उन्हें उपयोगकर्ता को प्रदर्शित करने की आवश्यकता है, तो कैश में पहले देखें। यदि यह कैश में नहीं है, तो डेटाबेस से पूछें, इसे कैश और डिस्प्ले पर सहेजें। अगली बार एक ही जानकारी का अनुरोध किया जाता है, तो आप सर्वर से अनुरोध नहीं करेंगे लेकिन स्मृति से। यह समाधान डाटाबेस सर्वर पर कई कॉल से बच जाएगा जो प्रदर्शन में सुधार करेगा।

    अगर आपको अतिरिक्त सहायता की आवश्यकता है तो मुझे बताएं।

    +0

    धन्यवाद कैशिंग के रूप में (लेन-देन, पंक्ति ताला और न तालिका लॉकिंग के लिए) InnoDB की सिफारिश करेंगे। मीडिया फाइलें छवियां हैं। विभिन्न आकारों पर एक ही छवि के 3 संस्करण। फ़ाइल का आकार लगभग 10k से 80k तक है और इसकी तुलना में अधिक होने की संभावना नहीं है। इस बात को ध्यान में रखते हुए यह अभी भी आकार में एक विशाल डीबी होने जा रहा है। क्या वो वजह बन रही हे? या नौकरी के लिए पर्याप्त कठिन है। बेशक memcached का उपयोग लाइव पक्ष पर किया जाएगा। – user915831

    +0

    मुझे एनएफएस का विचार पसंद है। लेकिन चूंकि यह एक निजी परियोजना है, मेरे फंड सीमित हैं। मेरे पास एक अच्छा लाइव समर्पित सर्वर है। अनमेटेड बैंडविड्थ और टी 1 कनेक्शन वाले डेटा सेंटर में। मेरे पास कार्यालय में एक आंतरिक सर्वर है लेकिन इंटरनेट अपस्ट्रीम कनेक्शन से बाधित है जो लगभग 512up 20 एमबीएस नीचे है। तो इन-हाउस सर्वर पर इस आइकन एनएफएस कनेक्शन के साथ उपभोग करने वाले सॉफ़्टवेयर को धीमा कर देगा - है ना? – user915831

    +0

    क्या एक ही डाटा सेंटर में सर्वर हैं? क्या वे वीपीएन के बिना एक-दूसरे से बात कर सकते हैं? इस लिंक को जांचें http://how-to.linuxcareer.com/how-to-configure-nfs-on-linux। हो सकता है कि आप डेटाबेस में छवियों को संग्रहीत करना शुरू कर सकें क्योंकि वे छोटे हैं और फिर बड़े मीडिया में अपग्रेड करते समय एनएफएस समाधान पर जाएं। –

    23

    मैं और redis बहुत तेज और कुशल

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