2010-07-15 17 views
12

मेरे पास एक डेटाबेस का उपयोग कर एक वेबसाइट है जिसका नाम "साइट 1" कहता है। मैं एक ही साइट पर एक और साइट डालने की योजना बना रहा हूं जो "साइट 1" से कुछ तालिकाओं का भी उपयोग करेगा।विभिन्न डेटाबेस से तालिकाओं में शामिल होने का प्रदर्शन प्रभाव

तो मुझे "साइट 1" (पहली साइट विशिष्ट डेटा के लिए), "साइट 2" (दूसरी साइट विशिष्ट डेटा के लिए), और "सामान्य" (सामान्य तालिकाओं के लिए) जैसे तीन अलग-अलग डेटाबेस का उपयोग करना चाहिए। जिसमें डेटाबेस सामान्य और साइट 1 और साइट 2 के बीच बयान शामिल होंगे। या क्या मुझे सभी टेबल एक डेटाबेस में रखना चाहिए?

करने का सबसे अच्छा अभ्यास कौन सा है? प्रत्येक परिस्थिति में प्रदर्शन कैसे भिन्न होते हैं? मैं MySQL का उपयोग कर रहा हूं। तो स्थिति विशेष रूप से MySQL के लिए कैसे है?

अग्रिम धन्यवाद ...

+0

क्या मुझे लगता है कि डीबीएस एक ही सर्वर पर हैं? –

+0

हाँ वे हैं। और मैंने पहले से ही विभिन्न डेटाबेस से तालिकाओं में शामिल होने का प्रयास किया है। यह काम करता हैं। –

उत्तर

3

मैं हाल के व्यक्तिगत अनुभव से बात कर सकता हूं। मेरे पास कुछ PHP कोड में कुछ पुराने mysql प्रश्न हैं जो अपेक्षाकृत छोटे डेटाबेस के साथ ठीक काम करते हैं, लेकिन जैसे ही यह बढ़ता गया सवाल धीमा और धीमा हो गया।

मेरे पास एक अन्य प्रबंधन php ऐप के साथ मैंने अपने डेटाबेस में mysql चलाया है। फ्रीराइडस टेबल> 1.5 मिलियन पंक्तियां है। मैं अपने ऐप के डेटाबेस से फ्रीराडीस डेटाबेस में टेबल में शामिल होने का प्रयास कर रहा था। मैं निश्चित रूप से कह सकता हूं कि 1.5 मिलियन पंक्तियां बहुत अधिक हैं। कुछ प्रश्नों को चलाने से मेरे ऐप को पूरी तरह बंद कर दिया गया। मैं चीजों को अलग-अलग करने के लिए अपने PHP ऐप के हिस्सों को दोबारा लिखना समाप्त कर दिया (यानी विभिन्न डेटाबेस से 2 टेबल में शामिल नहीं होना)। मैंने कुछ प्रमुख क्षेत्रों पर त्रिज्या लेखांकन तालिका को भी अनुक्रमित किया और कुछ प्रश्नों को अनुकूलित किया (mysql EXPLAIN कथन इस के साथ मदद करने के लिए अद्भुत है)। चीजें अब बहुत तेज हैं।

मैं भविष्य में अलग-अलग डेटाबेस से 2 टेबल में शामिल होने में निश्चित रूप से संकोच नहीं करूँगा जब तक कि वास्तव में वास्तव में आवश्यक न हो।

+2

क्या आप सुनिश्चित हैं कि मंदी डीबी आकार की वजह से नहीं थी? यदि आप एक ही डीबी में थे, तो भी आप मंदी को देख सकते थे। – Costa

10

प्रदर्शन बिंदु से, कोई अंतर नहीं होगा। बस अपनी अनुक्रमणिका को जगह में रखें और आप ध्यान नहीं देंगे कि आप एकल डीबी या एकाधिक डीबी का उपयोग कर रहे हैं या नहीं।

प्रदर्शन के अलावा, 2 छोटे प्रभाव हैं जिन्हें मैं सोच सकता हूं: 1. आपके पास डीबी में विदेशी कुंजी नहीं हो सकती है। 2. डीबी में उनके उपयोग के आधार पर या अनुप्रयोगों के आधार पर विभाजन तालिका आपको आसान तरीके से अनुमतियों का प्रबंधन करने में मदद कर सकती है।

+4

मेरा जवाब मानता है कि सभी डीबी एक ही डीबी सर्वर पर हैं। यदि आप उन्हें विभिन्न डीबी सर्वर पर रखते हैं, तो आप प्रदर्शन में गिरावट देखना शुरू कर देंगे। –

+4

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

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

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