2012-04-01 14 views
6

की संख्या मैं दो मार्गों, हैMySQL प्रदर्शन - टेबल्स बनाम संख्या। पंक्तियाँ

1) प्रत्येक उपयोगकर्ता के लिए उप-तालिका बनाने और उसके अलग-अलग सामग्री

2) कुछ टेबल और उन्हें में सभी उपयोगकर्ताओं के डाटा को बनाने के संचय। उदाहरण के लिए

1) 100.000 टेबल 1000 पंक्तियाँ

2) 50 टेबल्स प्रत्येक के साथ प्रत्येक 2,000,000 पंक्तियों

साथ मैं जानता हूँ कि जो मार्ग सबसे अच्छा और कुशल है चाहता हूँ।

संदर्भ: फेसबुक की तरह, लाखों उपयोगकर्ताओं के लिए, उनकी पोस्ट, फोटो, टैग। यह सारी जानकारी सभी उपयोगकर्ताओं के लिए कुछ विशाल तालिकाओं में है या प्रत्येक उपयोगकर्ता के पास इसके स्वयं के उप-टेबल हैं।

+1

आप मुफ्त वीडियो पाठ्यक्रम "डेटाबेस से परिचय" देख सकते हैं: http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=IntroToDatabases –

उत्तर

7

यह MySQL में इन दो दृष्टिकोणों के कुछ पेशेवर और विपक्ष हैं।

1. कई छोटी टेबल।

विपक्ष:

  • अधिक समवर्ती इस्तेमाल किया तालिकाओं अधिक फ़ाइल वर्णनकर्ता की जरूरत (जाँच this)
  • 100,000 तालिकाओं के साथ एक डेटाबेस एक मेस है का मतलब है।

पेशेवरों:

  • छोटे तालिकाओं छोटे अनुक्रमित का मतलब है। छोटी अनुक्रमणिका पूरी तरह से स्मृति पर लोड की जा सकती है, इसका मतलब है कि आपके प्रश्न तेजी से चलेंगे।
  • इसके अलावा, छोटी अनुक्रमणिका के कारण, डेटा मैनिपुलेशन जैसे आवेषण तेजी से चलेंगे।

2।कुछ बड़े तालिकाओं

विपक्ष:

  • एक बड़ी मेज बहुत बड़ा अनुक्रमित मतलब। यदि आपकी अनुक्रमणिका पूरी तरह से स्मृति पर लोड नहीं की जा सकती है तो अधिकांश प्रश्न बहुत धीमे हो जाएंगे।

पेशेवरों:

  • डेटाबेस (और भी अपने कोड) यह स्पष्ट और mantain आसान है।
  • यदि आपकी टेबल इतनी बड़ी हो गई है तो आप विभाजन का उपयोग कर सकते हैं। (this देखें)।

मेरे अनुभव से दो लाख पंक्तियों की एक तालिका (मैंने 70 लाख पंक्तियों के साथ काम किया है) यह MySQL के तहत एक प्रदर्शन समस्या नहीं है यदि आप स्मृति पर अपनी सभी सक्रिय अनुक्रमणिका लोड करने में सक्षम हैं।

यदि आपके पास कई समवर्ती उपयोगकर्ता होंगे तो मैं आपको Elastic Search जैसी अन्य तकनीकों का मूल्यांकन करने का सुझाव दूंगा जो इस तरह के परिदृश्यों को बेहतर तरीके से फिट करते हैं।

1

प्रत्येक उपयोगकर्ता के लिए एक टेबल बनाना खराब डिजाइन संभव है। यह पहली चीजों में से एक है जिसे आपको डीबी डिजाइन कक्षा में पढ़ाया जाता है।

0

तालिका डेटाबेस का एक मजबूत तार्किक घटक है और इसलिए इसका उपयोग आरडीबीएमएस द्वारा रखरखाव कार्यों के लिए किया जाता है। जैसे टेबल टेबल स्पेस, सीमाएं, कोटा, लॉग स्पेस, लेनदेन स्थान, इंडेक्स ट्री स्पेस और कई अन्य चीजों को सेट करना प्रथागत है। यदि प्रत्येक तालिका में डेटा डालने के लिए अपनी फ़ाइल मिलती है, तो टेबल या जो भी शामिल हो, आपको बड़े राउंडट्रिप के समय मिलेंगे।

जब आप कई टेबल बनाते हैं, तो आपके पास रखरखाव में वास्तव में एक बड़ा ओवरहेड होगा। इसके अलावा, आप संबंधपरक स्रोतों की प्रकृति को अस्वीकार कर देंगे। और बस मान लीजिए कि आप डेटाबेस में रिकॉर्ड जोड़ रहे हैं - हर बार एक नई टेबल बनाते हैं? यह आपके कोड पर थोड़ा कठिन होगा।

लेकिन फिर, आप कोशिश कर सकते हैं और खुद के लिए देख सकते हैं।

+0

धन्यवाद दिमित्री .... यह सहायक है। –

+0

आपका स्वागत है :) –

+0

@DmitriyReznik अगर मैं अपने प्रश्नों में शामिल नहीं होता हूं, तो क्या यह 100k जैसे कई टेबल होना ठीक है – Rams

संबंधित मुद्दे