ठीक है, आप हैं उन नंबरों को संग्रहीत करने के लिए अधिक डेटा खर्च करना, जिन तक आप वास्तव में कभी नहीं पहुंच पाएंगे।
8 बाइट्स में bigint बढ़कर 9,223,372,036,854,775,807 हो जाता है
int 4 बाइट्स में 2,147,483,647 हो जाता है
एक NUMERIC(38,0) लेने वाला है, अगर मैं सही गणित कर रहा हूँ, तो 17 बाइट्स।
बहुत बड़ा अंतर नहीं है, लेकिन:छोटे डेटाटाइप =मेमोरी में अधिक पंक्तियाँ (या समान # पंक्तियों के लिए कम पृष्ठ) =लुकअप करने के लिए कम डिस्क I/O (या तो अनुक्रमित या डेटा पृष्ठ चाहता है)। प्रतिकृति, लॉग पेज आदि के लिए भी यही होता है।
SQL सर्वर के लिए:INT एक IEEE मानक है और इसलिए CPU के लिए तुलना करना आसान है, इसलिए आपको INT बनाम NUMERIC (जो एक पैक दशमलव प्रारूप है) का उपयोग करके थोड़ा सा प्रदर्शन वृद्धि मिलती है। (ओरेकल में ध्यान दें, यदि वर्तमान संस्करण उन पुराने संस्करणों से मेल खाता है जिन पर मैं बड़ा हुआ हूं, तो सभी डेटाटाइप पैक किए गए हैं, इसलिए एक INT अंदर एक NUMERIC ( x, 0) जैसा ही है, इसलिए कोई प्रदर्शन अंतर नहीं है)
तो, चीजों की भव्य योजना में - यदि आपके पास बहुत सारी डिस्क, रैम और अतिरिक्त I/O है, तो आप जो भी डेटाटाइप चाहते हैं उसका उपयोग करें। यदि आप थोड़ा और प्रदर्शन प्राप्त करना चाहते हैं, तो थोड़ा अधिक रूढ़िवादी बनें।
अन्यथा इस बिंदु पर, मैं इसे वैसे ही छोड़ दूंगा। चीजों को बदलने की जरूरत नहीं है।