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

MySQL डेटाबेस में बड़ी संख्या में कॉलम

ठीक है, मुझे आपकी दुविधा दिखाई दे रही है, और (संभवतः अल्पकालिक) डेटाबेस विशेषज्ञ की अनुपस्थिति में मैं आपको अपनी राय दूंगा।

विवेक के लिए अपने डेटा को तोड़ दें। मान लें कि आप लोगों पर जानकारी संग्रहीत कर रहे हैं। आपको 1 टेबल में 200 कॉलम की जरूरत नहीं है। आपको उन्हें विभाजित करना चाहिए और बहुत सारी तालिकाओं में कई कॉलम होने चाहिए। उदा.

tblGeneralCharacteristics:
 - colEyeColor
 - colHairColor
 - colHeight
 - colWeight

tblInterests:
 - colFaveColor
 - colFaveSport

tblRelationships
 - colMother
 - colFather
 - colBrother
 - colSister

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

अगले अंक पर। वह डेटाबेस में रिकॉर्ड की मात्रा का। अगर 10,000 थोड़ा बड़ा होना शुरू हो रहा है, तो कैशिंग शुरू करने का समय आ गया है।

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

एक और चाल है, एसक्यूएल में आप जितनी अधिक गणना कर सकते हैं उतना बेहतर है। यदि आप औसत फ़ील्ड/रिकॉर्ड करना चाहते हैं, या कुछ कुल करना चाहते हैं तो इसे अपनी SQL क्वेरी के साथ भेजें। SQL सर्वर आपको बड़ी मात्रा में डेटा को छानने के लिए वापस करने के बजाय गणना करेगा और परिणाम लौटाएगा। मुझे पता है कि यह हमेशा आसान/उपयोगी नहीं होता है, लेकिन जितना अधिक आप SQL को बेहतर करने के लिए प्राप्त कर सकते हैं।

उम्मीद है ये मदद करेगा। जैसा कि मैंने कहा कि मुझे यकीन है कि एक डेटाबेस विशेषज्ञ आपको कुछ और व्यावहारिक सलाह देने के लिए उत्सुक है। :)

  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 के डिफ़ॉल्ट 'mysql' डेटाबेस को पुनर्प्राप्त/पुन:कैसे बनाएं?

  2. पायथन:ValueError:असमर्थित स्वरूप वर्ण ''' (0x27) अनुक्रमणिका 1 पर

  3. जावा में टाइमस्टैम्प को आज तक परिवर्तित करना

  4. MySQL प्रतिकृति त्रुटि 2003

  5. PHP स्ट्रिंग सरणी मानों को कैसे उद्धृत करें