यह आपके द्वारा उपयोग किए जा रहे MySQL के संस्करण पर निर्भर हो सकता है। देखें यहां ।
MySQL 5.0.3 से पहले, DECIMAL प्रकार को एक स्ट्रिंग के रूप में संग्रहीत किया गया था और आमतौर पर धीमा होगा। हालाँकि, MySQL 5.0.3 के बाद से DECIMAL प्रकार को बाइनरी प्रारूप में संग्रहीत किया जाता है, इसलिए आपके DECIMAL के आकार के साथ, ऐसा नहीं हो सकता है प्रदर्शन में बहुत अंतर।
मुख्य प्रदर्शन मुद्दा विभिन्न प्रकारों द्वारा उठाए गए स्थान की मात्रा (DECIMAL धीमा होने के साथ) होता। MySQL 5.0.3+ के साथ यह एक समस्या से कम प्रतीत होता है, हालांकि यदि आप क्वेरी के हिस्से के रूप में मानों पर संख्यात्मक गणना कर रहे हैं, तो कुछ प्रदर्शन अंतर हो सकता है। यह परीक्षण के लायक हो सकता है क्योंकि मेरे द्वारा देखे जा सकने वाले दस्तावेज़ीकरण में कोई संकेत नहीं है।
संपादित करें: int(10) unsigned
. के संबंध में , मैंने इसे केवल 4 बाइट int के रूप में अंकित मूल्य पर लिया। हालांकि इसका अधिकतम मूल्य 4294967295 है जो सख्ती से DECIMAL(10,0) unsigned
के समान संख्या प्रदान नहीं करता है। ।
जैसा कि @Unreason ने बताया, आपको bigint
. का उपयोग करना होगा 10 अंकों की संख्याओं की पूरी श्रृंखला को कवर करने के लिए, आकार को 8 बाइट्स तक धकेलना।
एक सामान्य गलती यह है कि MySQL में संख्यात्मक कॉलम प्रकारों को निर्दिष्ट करते समय, लोग अक्सर सोचते हैं कि कोष्ठक में संख्या का उस संख्या के आकार पर प्रभाव पड़ता है जिसे वे संग्रहीत कर सकते हैं। यह नहीं है। संख्या सीमा विशुद्ध रूप से कॉलम प्रकार पर आधारित होती है और चाहे वह हस्ताक्षरित हो या अहस्ताक्षरित। कोष्ठक में संख्या परिणामों में प्रदर्शन उद्देश्यों के लिए है और कॉलम में संग्रहीत मूल्यों पर इसका कोई प्रभाव नहीं पड़ता है। जब तक आप ZEROFILL
. निर्दिष्ट नहीं करते हैं, तब तक परिणामों के प्रदर्शन पर इसका कोई प्रभाव नहीं पड़ेगा कॉलम पर भी विकल्प।