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

जब आपके पास MySQL या PostgreSQL में टेक्स्ट फ़ील्ड है, तो क्या आपको इसे एक अलग टेबल में रखना चाहिए?

PostgreSQL के साथ नहीं, मैनुअल से :

तो एक बड़ा कैरेक्टर कॉलम (जैसे TEXT .) या VARCHAR एक निर्दिष्ट आकार सीमा के बिना) मुख्य तालिका डेटा से दूर संग्रहीत किया जाता है। इसलिए, PostgreSQL में आपका "इसे एक अलग तालिका में रखें" ऑप्टिमाइज़ेशन अंतर्निहित है। यदि आप PostgreSQL का उपयोग कर रहे हैं, तो अपनी तालिका को समझदारी से व्यवस्थित करें और डेटा लेआउट को PostgreSQL पर छोड़ दें।

मुझे नहीं पता कि MySQL या अन्य RDBMs अपने डेटा को कैसे व्यवस्थित करते हैं।

इस अनुकूलन के पीछे का कारण यह है कि डेटाबेस आमतौर पर प्रत्येक पंक्ति के लिए डेटा को डिस्क पर सन्निहित ब्लॉकों में रखेगा ताकि जब पंक्ति को पढ़ने या अद्यतन करने की आवश्यकता हो, तो उसे कम किया जा सके। यदि आपके पास एक पंक्ति में एक टेक्स्ट (या अन्य परिवर्तनीय लंबाई प्रकार) कॉलम है तो पंक्ति का आकार परिवर्तनीय है इसलिए पंक्ति से पंक्ति तक जाने के लिए और अधिक काम करने की आवश्यकता है। एक सादृश्य एक लिंक्ड सूची में किसी चीज़ तक पहुँचने बनाम एक सरणी तक पहुँचने के बीच का अंतर होगा; एक लिंक की गई सूची के साथ, आपको चौथे तक पहुंचने के लिए एक बार में तीन तत्वों को पढ़ना होगा, एक सरणी के साथ जिसे आप बस ऑफसेट करते हैं 3 * element_size शुरुआत से बाइट्स और आप एक चरण में हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP फ्लोट/डबल को MySQL DECIMAL के रूप में संग्रहीत किया जाता है

  2. स्प्रिंग एमवीसी हाइबरनेट एन्कोडिंग/मल्टी-लाइन आयात sql

  3. सबक्वेरी का समाधान 1 से अधिक पंक्ति त्रुटि देता है

  4. जहां पीडीओ के साथ खंड भ्रम

  5. सिम्फनी 2 / सिद्धांत में ENUM कैसे सक्षम करें?