FuelPHP के साथ डीबी क्षैतिज विभाजित समर्थन

यह सप्पोरो कार्यालय का के है।

पारंपरिक रूप से, एक सर्वर सिस्टम (एलएएमपी पर्यावरण) का निर्माण अपने स्वयं के ढांचे के विकास पर केंद्रित था, लेकिन हाल के वर्षों में अधिक से अधिक खुले स्रोत ढांचे का उपयोग किया जा रहा है।

इन-हाउस फ्रेमवर्क खराब नहीं है, लेकिन अगर यह एक ओपन सोर्स फ्रेमवर्क है, तो मुझे लगता है कि किसी अन्य कंपनी द्वारा ऑपरेशन से इसे लेना आसान होगा, या यदि आप इसे किसी अन्य कंपनी के रिवर्स और हैंडलिंग ऑपरेशंस में विकसित कर रहे हैं।

इसलिए, मैं FuelPHP के बारे में लिखना चाहता हूं जिसे मैंने सुना है कि इस बार यह सामाजिक खेलों और अन्य घटनाओं में व्यापक रूप से उपयोग किया जा रहा है, मैं आपको डीबी की युक्तियां बताऊंगा जिनकी मुझे परवाह नहीं है।

* FuelPHP किस प्रकार की जांघों के विवरण के लिए, जापानी दस्तावेज़ देखें।

(FuelPHP जापानी दस्तावेज़)http://fuelphp.jp/

 

■ पर्यावरण ने इस बार बनाया

इस बार, हमने निम्नलिखित पर्यावरण में सत्यापन किया।

अपाचे 2.2.22

पीएचपी 5.4.44

MySQL 5.5.44,

ईंधन PHP 1.7.3

यद्यपि इसे खाली आंतरिक परीक्षा वातावरण कहा जाता है, PHP संस्करण थोड़ा पुराना है, लेकिन FuelPHP इसका समर्थन कर रहा है।

वैसे, FuelPHP का नवीनतम रिलीज़ संस्करण 1.8 है, और यह PHP 7 का भी समर्थन करता है!

मैं वहां भी कोई भी रिपोर्ट अपलोड करना चाहता हूं।

 

युक्तियां!

■ डीबी तालिका के क्षैतिज विभाजन के लिए समर्थन

डेटाबेस टेबल का क्षैतिज विभाजन सामाजिक गेम में लोड संतुलन के लिए एक प्रभावी तरीका है।

हालांकि, FuelPHP से संबंधित क्षैतिज विभाजन में अप्रत्याशित रूप से कोई जानकारी नहीं है, और इसे बनाने के लिए इसे फंसाया जाना है।

हालांकि FuelPHP में डीबी को मास्टर और दास में अलग करने का कार्य है, लेकिन तालिका को क्षैतिज रूप से फैलाने के मामले में प्रसंस्करण को ध्यान में नहीं रखा जाता है और अच्छे नमूने नहीं मिल सकते हैं।

 

इसलिए, हमने एक मॉडल बनाया जो मौजूदा ओआरएम मॉडल को बढ़ाता है, और शर्तों के अनुसार एक टेबल का चयन करने का फैसला किया।

प्रत्येक प्रक्रिया और बाल मॉडल वर्ग के लिए, यह एक्सटेंशन मॉडल विरासत में और उपयोग किया जाता है। (यह एक सामान्य प्रक्रिया है ..)

 

इस तंत्र में, हमने निम्नलिखित चीजें की हैं।

कनेक्शन कनेक्शन को ओवरराइड करने वाला एक कनेक्शन बनाएं,

उनमें से, तालिका को विभाजन नियम के आधार पर चुना जाता है।

विरासत के लिए कक्षा तैयार करें विभाजित तालिका के लिए विभाजित नहीं,

विभाजन सेटिंग बनाओ।

व्यक्तिगत टेबल कक्षाएं उपरोक्त विरासत वर्ग का उत्तराधिकारी हैं और विभिन्न चीजें करते हैं।

 

इसे लिखना मुझे थोड़ा जटिल महसूस करता है, लेकिन यह लगभग निम्नानुसार होगा।

fig001

उदाहरण के लिए, यदि आपको लगता है, तो इसका वास्तव में मतलब है कि यह क्वेरी :: फोर्ज में अपनी कक्षा को अपडेट करने का एक तंत्र है, इसलिए यह ठीक है।

जब कक्षा स्वचालित रूप से मचान आदि के साथ उत्पन्न होती है, तो इसे फिर से लिखना होगा।

 

हमारी कंपनी में, हम वितरित गंतव्यों के साथ एक टेबल तैयार करते हैं और प्रत्येक उपयोगकर्ता द्वारा प्राप्त तालिका से इसे एक्सेस करते हैं (_ 0 आदि में)। मुझे लगता है कि यह क्षेत्र डिजाइन का हिस्सा है।

 

■ ट्रम्प सामान

ईंधन PHP कॉन्फ़िगरेशन फ़ाइल कॉन्फ़िगरेशन को कोर से कॉपी और पुनर्लेखित करने के रूप में वर्णित किया गया था, पुनः लिखने के बाद एक अपनाया जाएगा, लेकिन

विकास के अलावा पर्यावरण के तहत, हमने पाया कि कोर के तहत कॉन्फ़िगर लाइव रहेगा।

इसलिए, कॉन्फ़िगरेशन फ़ाइल में मैंने इस बार प्रतिलिपि बनाई है, मैंने mysqli के साथ स्थापित किया है, लेकिन जैसे ही मैंने पर्यावरण को उत्पादन में बदल दिया, यह एक त्रुटि है! !

परीक्षा के परिणामस्वरूप, यह एक त्रुटि थी क्योंकि कोर का कॉन्फ़िगर डिफ़ॉल्ट डिफ़ॉल्ट था।

 

चूंकि FuelPHP अक्सर कोर को फिर से लिखता है, इसलिए सावधान रहना आवश्यक लगता है।

 

■ छापों

मुझे लगा कि FuelPHP का उपयोग करना आसान है और एक आराम से ढांचा है, लेकिन चूंकि इसे कुछ पढ़ने की क्षमता भी चाहिए, मैंने सोचा कि इसे अनुकूलित करना और इसका उपयोग करना बेहतर होगा।

भविष्य में, मैं विभिन्न चीजों के साथ-साथ FuelPHP को छूना चाहता हूं।