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

मैसकल:एकाधिक टेबल या एक बड़ी टेबल?

यदि आप शून्य, एक या अनेक . का पालन करते हैं सिद्धांत, जिससे या तो ऐसी कोई चीज नहीं है, उनमें से एक, या असीमित संख्या है, आप हमेशा इस तरह की चीजों को ट्रैक करने के लिए सामान्य रूप से सामान्य तालिकाओं का निर्माण करेंगे।

उदाहरण के लिए, एक संभावित स्कीमा:

CREATE TABLE user_attributes (
  id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
  user_id INT NOT NULL,
  attribute_name VARCHAR(255) NOT NULL,
  attribute_value VARCHAR(255),
  UNIQUE INDEX index_user_attributes_name(user_id, attribute_name)
);

यह मूल कुंजी-मूल्य स्टोर पैटर्न है जहां आप कई रख सकते हैं प्रति उपयोगकर्ता विशेषताएँ।

हालांकि इसके लिए भंडारण की आवश्यकताएं attribute1 जैसे स्थायी-निराशाजनक नामों के साथ एक निश्चित-स्तंभ व्यवस्था से अधिक है , टेराबाइट के आकार की हार्ड-ड्राइव की उम्र में लागत इतनी कम है कि यह शायद ही कभी एक मुद्दा है।

आम तौर पर आप इस डेटा के लिए एक टेबल बनाते हैं जब तक कि सम्मिलन समय एक समस्या न हो जाए। जब तक आपके इंसर्ट्स तेज़ हैं, मैं इसके बारे में चिंता नहीं करूँगा। उस समय आप शार्डिंग . पर विचार करना चाहेंगे इस डेटा को एक समान स्कीमा के साथ कई तालिकाओं में विभाजित करने की रणनीति, लेकिन केवल तभी जब इसकी आवश्यकता हो।

मुझे लगता है कि यह ~ 10-50 मिलियन पंक्तियों के चरण में होगा, लेकिन अधिक हो सकता है यदि इस तालिका में सम्मिलित गतिविधि की मात्रा अपेक्षाकृत कम है।

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

हमेशा की तरह, किसी भी प्रस्तावित स्कीमा को उत्पादन . पर बेंचमार्क करें पैमाना।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UTC_DATE उदाहरण – MySQL

  2. टेक्स्ट फ़ील्ड द्वारा समूहीकृत करते समय GROUP_CONCAT() पंक्ति गणना

  3. MySQL डेटाबेस में खोजते समय '%' चिह्न का मिलान करें

  4. त्रुटि संदेश:थ्रेड मुख्य org.hibernate.HibernateException में अपवाद:स्टैक्स स्ट्रीम तक पहुँचने में त्रुटि

  5. जबकि($row =mysql_fetch_assoc($result)) - $row का अनुमान कैसे लगाएं?