मैं आपके परिदृश्य के लिए चार संभावित समाधान के बारे में सोच सकता हूँ:
- पूरी तरह से योग्य-तालिका-नामों का उपयोग बाहरी . के लिए क्वेरी करते समय करें टेबल। MySQL
dbname.tablename
का समर्थन करता है -सिंटैक्स वर्तमान डेटाबेस दायरे से बाहर तालिकाओं तक पहुँचने के लिए। इसके लिए यह आवश्यक है कि वर्तमान में कनेक्टेड उपयोगकर्ता के पास अनुरोधित तालिका से किसी अन्य भौतिक डीबी में पढ़ने का उचित अधिकार हो। - यदि आपका बाहरी डेटाबेस किसी भिन्न MySQL सर्वर पर चल रहा है (या तो उसी मशीन पर या नेटवर्क कनेक्शन के माध्यम से) तो आप दूरस्थ तालिका की केवल-पढ़ने के लिए प्रतिलिपि को लगातार अपडेट करने के लिए प्रतिकृति का उपयोग कर सकते हैं। प्रतिकृति केवल तभी संभव है जब आप दो अलग MySQL इंस्टेंस चला रहे हों।
FEDERATEDका उपयोग करें कोड> MySQL स्टोरेज इंजन
वस्तुतः आयात . करने के लिए आपके वर्तमान डेटाबेस में तालिका। यह दूसरे डेटाबेस में वर्तमान उपयोगकर्ता पहुंच अधिकार देने की आवश्यकता को हटा देता है क्योंकि क्रेडेंशियलतालिका बनाएं
के साथ दिए गए हैं। -स्टेटमेंटफेडरेटेड
. का उपयोग करते समय भंडारण इंजन। यह विभिन्न भौतिक सर्वरों या विभिन्न MySQL उदाहरणों पर चलने वाले डेटाबेस के साथ भी काम करता है। मुझे लगता है कि यह सबसे खराब प्रदर्शन करने वाला विकल्प होगा और इसमें कुछ सीमाएं - आपके उपयोग परिदृश्य और आपकी आवश्यकताओं के आधार पर कमोबेश महत्वपूर्ण।- यह विधि 1 का विस्तार है। हर बार जब आप अपने बाहरी से जानकारी का अनुरोध करते हैं तो पूरी तरह से योग्य-तालिका-नाम निर्दिष्ट करने के बजाय तालिका, आप बस एक दृश्य
बना सकते हैं एक साधारण
चुनें <<कॉलम>> <<डेटाबेस>> से अपने वर्तमान डेटाबेस के अंदर।<
> . यह
संघीय
. के तरीके से मिलता-जुलता है -विधि काम करती है, लेकिन उसी MySQL उदाहरण पर तालिकाओं तक सीमित है।व्यक्तिगत रूप से मैं विधि (4) को सबसे उपयोगी मानता हूं - लेकिन आपकी आवश्यकताओं के आधार पर अन्य भी संभव समाधान हो सकते हैं।