2010-08-18 13 views
14

मैं MySQL टेक्स्ट और MEDIUMTEXT फ़ील्ड्स के आकार/संग्रहण बाधाओं को समझता हूं, लेकिन मैं बस पूरी तरह से सुनिश्चित करना चाहता था (इससे पहले कि मैं एक बदलाव पर हस्ताक्षर करता हूं) कि मैं किसी भी प्रतिकूल प्रभाव को मौजूदा डेटा वाले फ़ील्ड को परिवर्तित करने से नहीं देख रहा हूं टेक्स्ट से MEDIUMTEXT तक।MySQL टेक्स्ट फ़ील्ड को MEDIUMTEXT में परिवर्तित करने के किसी भी नुकसान?

मेरी चिंताएं मुख्य रूप से प्रदर्शन, अखंडता और डिस्क संग्रहण हैं।

धन्यवाद

उत्तर

23

प्रदर्शन, अखंडता और डिस्क डेटाबेस परत में भंडारण के संबंध में, मैं इसके बारे में चिंता नहीं करता।

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

मैं एक संभावित प्रभाव के बारे में सोच सकते हैं:

कुछ क्लाइंट इंटरफ़ेस पुस्तकालयों पूर्व आवंटित एक बफर परिणाम धारण करने के लिए, और वे सबसे अधिक संभावित मूल्य के लिए पर्याप्त स्मृति आवंटित है, क्योंकि ग्राहक पता नहीं है डेटा प्राप्त करने तक डेटा।

इसलिए पुस्तकालय प्रति mediumtext पर 16 एमबी आवंटित करेगा जबकि यह text के लिए 64 केबी आवंटित करेगा। यह देखने के लिए कुछ है कि क्या आपके क्लाइंट परत में कम मेमोरी सीमा है। उदाहरण के लिए, PHP में स्क्रिप्ट के लिए memory_limit कॉन्फ़िगरेशन पैरामीटर है, और डेटा परिणाम सेट के लिए आवंटित बफर इस पर गिना जाएगा।

+0

त्वरित प्रतिक्रिया के लिए धन्यवाद, बिल! – scooterhanson

+1

'कुछ क्लाइंट इंटरफ़ेस लाइब्रेरीज़', मैंने पाया है कि यह स्मृति समस्या PHP में पुरानी mysql लाइब्रेरीज़ के साथ एक समस्या थी। हालांकि, 3 साल बाद यह अब कोई समस्या नहीं होनी चाहिए। – kasimir

+3

@ कासिमीर: PHP 5.6 और पीडीओ के साथ, 'मध्यम टेक्स्ट' 'text' से अधिक स्मृति का उपयोग करता है (उसी मान के साथ, एक खाली स्ट्रिंग)। मेरे सरल परीक्षण में, अंतर 0.5 एमआईबी बनाम 1.5 एमआईबी है। – Bell