partition
. में देख कर प्रारंभ करें अपनी तालिका में यदि आपने पहले से ऐसा नहीं किया है:
http://dev.mysql.com/doc/refman/5.1 /hi/partitioning.html
http://www.slideshare.net/datacharmer/mysql-partitions-tutorial ए>
आप अपने डेटा को 'समेकित' कैसे कर रहे हैं? हो सकता है कि आप जिस विधि का उपयोग कर रहे हैं वह इष्टतम न हो। एक अच्छा तरीका (मुझे बताएं कि क्या यह वास्तव में आप कर रहे हैं) एक तालिका बनाना है जिसमें समेकित डेटा शामिल है। फिर इसे इस तरह सेट करें:
सबसे पहले डेटा को आपकी मुख्य तालिका में कैसे डाला जा रहा है, इसे अलग रखें...
-
मुख्य तालिका में डेटा कैसे लोड किया जाता है, इसके सापेक्ष एक निर्दिष्ट अंतराल पर चलने वाली नौकरी (क्रॉन या जो कुछ भी आपके पास आसान या पहले से कॉन्फ़िगर किया गया हो) बनाएं (चलिए इसे
MAIN
कहते हैं) , आगे बढ़ते हुए)। यदि आपकी MAIN तालिका प्रति घंटा लोड हो जाती है, तो इसे सिंक करें। आधा घंटा? कोई फर्क नहीं पड़ता। आप वैसे भी गति की जांच कर सकते हैं, या यदि आपकी रिपोर्ट चलने के व्यस्ततम घंटों के करीब है, तो उसके निकट शेड्यूल करें -
समेकित डेटा के लिए अपनी तालिका को उचित रूप से अनुक्रमित करें। चलिए इसे
AGG
कहते हैं आगे बढ़ रहा है। -
एक संग्रहीत कार्यविधि बनाएं जो डेटा को MAIN से AGG में लोड करती है, जो मूल रूप से एक
AGG LOAD FOR INTERVAL-?
है . बेशक, यहां केवल आप ही जानते हैं कि डेटा को MAIN में कैसे या कब डाला जाता है, इसलिए आप भी वही होंगे जो यह जानता है कि एकत्रीकरण का इरादा क्या है। अगर एग्रीगेशन का इरादा पूरा नहीं होता है, तो एग्रीगेटिंग स्टोर की गई प्रक्रिया को चालू रखना भी संभव है (जैसे कि यह पूरे दिन के लिए है.. इसलिए यह सेट होने तक एक संचयी रन है) -
STAGING
का उपयोग करें टेबल। मेरे लिए, वे सबसे अच्छे हैं । -
एक संग्रहीत कार्यविधि बनाएँ जो डेटा की पुन:जाँच करे, ताकि इस प्रक्रिया को चलाकर कोई भी अद्यतन या रिकॉर्ड का अतिरिक्त सम्मिलन AGG तालिका में दिखाई दे सके। श्रेणी को अद्यतन करने के लिए पैरामीटर शामिल करें। यदि यह दैनिक है, तो आपके पास
DAILY AGG LOAD
. है औरDAILY AGG RELOAD
प्रक्रिया। एकAGG CHECK INTERVAL
शामिल करें औरAGG CHECK DAILY
प्रक्रिया जो आपको रात में अच्छी नींद लेने में मदद करेगी। ओह औरAGG DATA HOLE CHECK
का उल्लेख नहीं करना चाहिए या एकMISSING AGG DATA CHECK
और व्यावसायिक नियम लागू करते हैं जो आवश्यक न्यूनतम मात्रा में डेटा के लिए जाँच को लागू करते हैं जो आप एकत्रित तालिका या मुख्य तालिका या स्टेजिंग तालिका से प्राप्त कर सकते हैं (अधिमानतः) -
बेशक, कभी भी
AGG
में बदलाव न करें मेज़। इसे हमेशा केवल पुनः लोड करें। -
यह कैसे मदद करता है? क्या तब आपको केवल अपनी रिपोर्ट्स को
AGG
. के लिए क्वेरी करने की आवश्यकता नहीं होगी? तालिका, जो छोटी और तेज़ है (चूंकि एकत्रीकरण पहले ही किया जा चुका है)? हो सकता है कि प्रदर्शन समस्या अंतराल लोडिंग के साथ आती है, लेकिन यदि आप अपनी तालिका, इसकी अनुक्रमणिका और इसके रखरखाव को ठीक से व्यवस्थित करते हैं, तो यह इसके लायक होना चाहिए। -
विभाजन कहाँ आता है? संग्रह। एक बार एक निश्चित समय बीत जाने के बाद (चर्चा करें कि आपकी टीम/बॉस/टॉप मैन के साथ क्या स्वीकार्य है) आप पुराने डेटा को
MAIN
से संग्रहित कर सकते हैं। . मुझे उत्पादन डेटाबेस में 1 वर्ष का डेटा रखने का अनुभव हुआ। उस तरह से एक ड्रैग की तरह महसूस किया गया था, लेकिन क्योंकि यह ग्राहक का अनुरोध था, कंपनी के पास मुझे डिस्क स्थान देने के अलावा कोई विकल्प नहीं था (हाथों को रगड़ना) और लड़के ने इसके साथ तब तक खेला जब तक मुझे कुछ ठीक से नहीं चल रहा था। मुझे यह उल्लेख करना चाहिए कि मेरा अनुभव Microsoft SQL Server 2005 के साथ था, और संग्रहीत कार्यविधियाँ और SSIS ने इसे मज़ेदार बना दिया।
यह सब तब है जब आप इसे पहले से नहीं जानते हैं, और अन्य लोगों के लिए जो विकल्पों पर विचार करना चाहते हैं। मैं यह नहीं कह रहा हूं कि आप उपरोक्त में से कोई भी पहले से नहीं जानते थे; मैं केवल वही बता रहा हूं जो मैं पहले कर पाया हूं - यह देखते हुए कि आपके पास आपके पोस्ट से काम करने के लिए और अधिक जानकारी नहीं है, सिवाय इसके कि आपके पास एक समेकन प्रक्रिया है जिसे आपने आजमाया था ..