Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL तालिका के लिए कितना बड़ा है?

"कितना बड़ा बहुत बड़ा है" प्रश्न का कोई बड़ा सामान्य समाधान नहीं है - ऐसी चिंताएं अक्सर इस बात पर निर्भर करती हैं कि आप अपने डेटा के साथ क्या कर रहे हैं और आपके प्रदर्शन संबंधी विचार क्या हैं।

टेबल आकार पर कुछ मौलिक सीमाएं हैं। आपके पास 1000 से अधिक कॉलम नहीं हो सकते हैं। आपका प्रत्येक रिकॉर्ड 8k से बड़ा नहीं हो सकता। ये सीमाएँ डेटाबेस इंजन के आधार पर बदलती हैं। (जो यहां हैं वे InnoDB के लिए हैं।)

ऐसा लगता है कि आपने कई अलग-अलग डेटा सेट को एक टेबल में मर्ज कर दिया है। आपके पास शायद कुछ फ़ील्ड हैं जो आपको बताती हैं कि यह रिकॉर्ड किस डेटा सेट से संबंधित है, साथ ही कुछ डेटा फ़ील्ड और कुछ टाइमस्टैम्प जानकारी भी। यह बहुत विस्तृत रिकॉर्ड नहीं है (जब तक आप लॉगिंग नहीं कर रहे हैं, मान लें, प्रत्येक अनुरोध के सभी इनपुट पैरामीटर।) आपकी मुख्य समस्या चयनात्मकता के साथ होगी। . इस तालिका को सार्थक तरीके से अनुक्रमित करना एक चुनौती होगी। यदि आपके सामान्य क्षेत्र पर्याप्त रूप से चयनात्मक हो सकते हैं कि आप तालिका से परामर्श किए बिना अपने इच्छित रिकॉर्ड प्राप्त करने के लिए उनका उपयोग कर सकते हैं, तो यह एक बहुत बड़ा प्लस होगा। (सीएफ टेबल स्कैन)

इसके लिए प्रति दिन कई रिकॉर्ड (मूल रूप से, पूरे दिन में दो सेकंड, और मुझे लगता है कि आपके पास एक पीक-लोड अवधि है जहां यह बहुत अधिक है), आप यह भी सुनिश्चित करना चाहेंगे कि आप विशेष रूप से अनुकूलन को देखें प्रविष्टि की गति में सुधार . एक सामान्य नियम के रूप में, अधिक अनुक्रमणिका =धीमी प्रविष्टियां। यदि आप कर सकते हैं, तो पुराने रिकॉर्ड को पूरी तरह से किसी अन्य तालिका में संग्रहीत करने पर विचार करें। पिछले कार्यस्थलों में, हमने पिछले महीने, पहले के तीन महीने, पहले छह महीने, प्रत्येक की अलग-अलग तालिकाओं में एक अभिलेखीय रणनीति का उपयोग किया है। एक अन्य विचार पुराने रिकॉर्ड को हटाना है। कई परिवेशों को बस एक निश्चित तिथि से आगे की जानकारी की आवश्यकता नहीं होती है। तीन महीने पहले के लॉगिंग रिकॉर्ड पर टिके रहना अक्सर बहुत महंगा होता है।

अंत में, भौतिक संग्रहण की उपेक्षा न करें आपकी टेबल का। आपके रिकॉर्ड जितने पतले होंगे, रिकॉर्ड को पढ़ने के लिए (या उस मामले के लिए, सम्मिलित करने के लिए) कम भौतिक IO की आवश्यकता होगी। आप अपने इंडेक्स को एक अलग भौतिक हार्ड ड्राइव पर स्टोर कर सकते हैं। यदि आपके रिकॉर्ड में बहुत अधिक अनावश्यक डेटा है, तो संपीड़ित तालिका को संग्रहीत करना वास्तव में गति में वृद्धि हो सकती है। यदि आपके पास जलाने के लिए थोड़ी सी नकदी है, तो अपने डेटा को अलग करने के लिए एक अच्छे RAID सरणी के मूल्य पर विचार करें।

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में एकाधिक तालिकाओं में मिलान रिकॉर्ड कैसे प्राप्त करें

  2. MySQL DROP सभी टेबल, विदेशी कुंजियों की अनदेखी

  3. क्या होता है जब मैं एक पीडीओ स्टेटमेंट में बूलियन ट्रू-फाल्स को एक पैरामीटर के रूप में भेजता हूं जो एक इंट फील्ड से जुड़ा होता है?

  4. मैं एक MySQL डेटाबेस में संग्रहीत PHP को कैसे निष्पादित करूं?

  5. शर्त नहीं के आधार पर 2 तालिकाओं के परिणामों में कैसे शामिल हों