MySQL के साथ, लोग आमतौर पर वही करते हैं जिसे एप्लिकेशन आधारित शार्डिंग . कहा जाता है ।
संक्षेप में, आपके पास एक ही डेटाबेस होगा संरचना एकाधिक डेटाबेस सर्वर पर। लेकिन इसमें वही डेटा नहीं होगा।
तो उदाहरण के लिए:
Users 1 - 10000: server A
Users 10001 - 20000: server B
शेयरिंग (बेशक) एक बैकअप तकनीक नहीं है, यह एक क्लस्टर में पढ़ने और लिखने को वितरित करने के लिए है।
उदाहरण के लिए, शार्प करने के लिए नियोजित तकनीकें MySQL-Proxy हैं। यह कुछ भी नहीं है कि HScale ने आविष्कार किया, यह कमोबेश एक साधारण LUA स्क्रिप्ट है जो विभिन्न बैकएंड सर्वरों को पढ़ता और लिखता है। MySQL फोर्ज पर बहुत सारे उदाहरण होने चाहिए।
एक अन्य टूल (MySQL प्रॉक्सी पर आधारित) है SpockProxy . पूरी तरह से sharding के अनुरूप। उन्होंने लुआ से भी छुटकारा पा लिया, और उन्होंने इसे प्रॉक्सी से तेज बनाने के लिए विभिन्न चीजों पर काम किया। अब तक, मैंने केवल SpockProxy का परीक्षण किया है, लेकिन इसे कभी भी उत्पादन में नहीं चलाया।
अब उन प्रॉक्सी के अलावा, आप खुद को भी शार्प कर सकते हैं। एक मास्टर टेबल की आवश्यकता होगी, उदा.:
-------------------
| userA | server1 |
| userB | server2 |
| userC | server1 |
-------------------
फिर सर्वर की ओर अपने पढ़ने और लिखने का निर्माण करें। बहुत सुंदर नहीं है लेकिन यह काम करता है। अगली बाधा इसे और अधिक फालतू सहनशील बनाना होगा। तो उदाहरण के लिए, server1
, server2
और server3
प्रत्येक एक छोटा समूह होना चाहिए।
और अंतिम लेकिन कम से कम, सर्वरों में डेटा और इंडेक्स को विभाजित करने के लिए एक और दिलचस्प तरीका डिग का IDDB . मुझे यकीन नहीं है कि उन्होंने कभी इसका कोड जारी किया है, लेकिन उनके ब्लॉग पोस्ट इस पर बहुत अच्छा विवरण देते हैं कि यह क्या करता है।
मुझे बताएं कि क्या यह मदद करता है!