आप आम तौर पर varchars के बजाय पूर्णांक का उपयोग करते हैं क्योंकि वे कम जगह का उपभोग करते हैं, अच्छी तरह से समझते हैं कि छँटाई पैटर्न इंडेक्स आदि के लिए तेज़ हैं। इंटीग्रर्स सीपीयू के प्राकृतिक डेटा प्रकार हैं, और इसलिए प्रदर्शन आम तौर पर इष्टतम है। आमतौर पर एक पूर्णांक 4 बाइट्स होता है, जो एक (गैर-यूनिकोड) वर्चर में सिर्फ 4 वर्णों के बराबर होता है।
यदि आप एक INT प्रकार के साथ अंतरिक्ष से बाहर भागने के बारे में चिंतित थे, तो BIGINT आज़माएं, जो आपको 8-बाइट नंबर देता है। इस पर सीमा बहुत बड़ी है, और आप रिकॉर्ड की सीमा तक पहुँचने से पहले शायद डिस्क स्थान से बाहर भाग लेंगे :-) BIGINT का प्रदर्शन भी बहुत अच्छा होने वाला है, विशेष रूप से कई सर्वर अब 64-बिट भी हैं ।
जब आप INT में भाग लेते हैं तो क्या होता है, इस बारे में आपके प्रश्न के पहले भाग का उत्तर सरल नहीं है, विशेषकर जैसा कि आपने डेटाटाइप को BIGINT में बदले बिना कहा था। मूल रूप से बहुत कुछ ऐसा नहीं है जो आप कर सकते हैं, और आप जो करने में सक्षम हो सकते हैं वह आपके डेटाबेस में डेटा की प्रकृति से बहुत सीमित है। इस डेटा के लिए विदेशी रिकॉर्ड क्या हैं? क्या आपको अभी भी उस तालिका और संबंधित रिकॉर्ड में सभी डेटा की आवश्यकता है? इस धारणा पर कि आप बहुत से प्रारंभिक डेटा (और उसके संबंधित डेटा) को संग्रहीत कर सकते हैं, तो केवल एक चीज जो मैं सुझा सकता हूं वह है डेटा को तालिका से बाहर ले जाना (पहले 1 से X मिलियन रिकॉर्ड्स कहना), और फिर पहचान पत्र को रीसेट करना 1. सभी प्रकार के कारण हैं, हालांकि मैं इसकी सिफारिश नहीं करूंगा - उदाहरण के लिए कोड के कई बिट्स हैं जो मैंने देखे हैं कि एक आईडी फ़ील्ड के अधिकतम मूल्य की जाँच करें, यह देखने के लिए कि अभी क्या जोड़ा गया है, और यह काम नहीं करेगा (और नहीं किया जाना चाहिए)। इसके अलावा, लोग मानते हैं कि रिकॉर्ड N को N + 1 से पहले बनाया गया था। कोई आसान जवाब नहीं मुझे लगता है।
अंत में, मुझे MySQL के बारे में पता नहीं है, लेकिन यदि आप सीमा तक पहुँच गए हैं तो SQL सर्वर ओवरफ़्लो त्रुटि देगा।