2011-09-27 13 views
34

मैंने कई आकार देखे हैं और मैं एक MySQL फ़ील्ड पर सर्वर मेमोरी बर्बाद नहीं करना चाहता हूं जो बहुत से वर्णों के लिए बहुत अधिक जगह आरक्षित कर रहा है। वे सबसे बड़ा क्या प्राप्त कर सकते हैं और क्या यह कभी बदल जाएगा?अधिकतम क्या है। एक फेसबुक यूआईडी की लंबाई?

+2

दस्तावेज़ीकरण में निर्दिष्ट कोई सीमा नहीं है। "क्या यह कभी बदल जाएगा" - वह फेसबुक है जिसके बारे में हम बात कर रहे हैं; कठोर एपीआई परिवर्तन आम हैं। इसलिए, हालांकि यूआईडी बहुत केंद्रीय हैं, लेकिन भविष्य में किसी भी समय इसे बदलने के लिए एफबी * नहीं * पर भरोसा नहीं होगा, क्योंकि वे ऐसा महसूस कर सकते हैं। बेहतर चरित्रों की एक अपारदर्शी स्ट्रिंग के रूप में इसका इलाज करें। – Piskvor

+3

माइस्क्ल के लिए, अनगिनत बिगिनट का उपयोग करें; देखें: http://stackoverflow.com/questions/2172126/user-id-big-int-int-or-string – Costa

उत्तर

63

इस प्रकार पूर्णांक ओवरफ्लो, पूर्णांक-> स्ट्रिंग माइग्रेशन इत्यादि डेटाटाइप को बहुत ही सीमित बनाकर होता है। 128 बी वर्कर के लिए कुछ बाइट्स पर स्पलैश करें और सड़क को परेशानी से बचाएं। यदि आपका उपयोगकर्ता आधार इतना बड़ा हो जाता है कि आपको चिंता करने की आवश्यकता है कि आप यूआईडी के डेटा प्रकारों को कुचलने से कितने बाइट बचाएंगे, तो खुद को एक बड़ी सफलता मानें और यह एक समस्या है जिसे आप हल करने में प्रसन्न होंगे।

संक्षिप्त उत्तर, मुझे नहीं लगता कि कोई भी आपके प्रश्न का उत्तर देने में सक्षम होगा, "कभी" एक लंबा समय है और कौन जानता है कि फेसबुक तब तक कितनी संस्थाओं को गुलाम बना देगा।

मैं उस व्यक्ति से उद्धरण के साथ समाप्त करूंगा जिसने इसे सर्वश्रेष्ठ कहा;

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. 
—Donald E. Knuth 
+0

सहमत हैं। धन्यवाद! =) –

+0

यह एक अच्छा जवाब है। मुझे बस यह सही समस्या थी। पहले मेरे सिस्टम में सभी फेसबुक आईडी लंबाई में 10 अंकों से अधिक नहीं थीं, हालांकि फेसबुक ने हाल ही में इसे बदल दिया है, इसलिए आईडी 15 अंकों की लंबाई में हैं। मैंने एक ही फेसबुक आईडी के साथ कई उपयोगकर्ताओं को देखना शुरू कर दिया और "आईडी" को वास्तव में अधिकतम पूर्णांक मान नहीं पहचाना। मैंने अपना क्षेत्र एक वर्चर में बदल दिया और इसे वंशावली के लिए बहुत सी पैडिंग दी। VARCHAR के लिए – Gavin

+0

+1 इस वजह से: जावास्क्रिप्ट में parseInt ("10208914157005637") 10208914157005636 देता है !!! –

2

आप कभी भी यह सुनिश्चित कैसे कर सकते हैं कि यह कभी नहीं बदलेगा? बेहतर इसे एक वर्चर बनाओ।

-8

फेसबुक यूआईडी कभी नहीं बदलेगा क्योंकि यह उनके डेटाबेस में एक अद्वितीय पहचानकर्ता है। अगर यह बदल गया तो फेसबुक

+4

उस पर शर्त न लगाएं, वे उदास कर सकते हैं मौजूदा अपडेट को अपडेट किए बिना अल्फान्यूमेरिक यूआईडी का उपयोग करने के लिए स्विच करने का निर्णय लें .. यह पाठ्यक्रम की संभावना नहीं है, लेकिन कभी भी कभी नहीं कहें ... – ivanhoe

+2

मुझे पता है कि यह एक पुरानी पोस्ट है, लेकिन Google ने मुझे यहां लाया। इस समय फेसबुक यूआईडी बदलता है! प्रत्येक फेसबुक ऐप एक ही यूजर को विभिन्न यूआईडी के साथ देखता है। संयोजन AppId + UserId को कभी भी नहीं बदला जाना चाहिए, क्योंकि इसे फेसबुक ऐप्स द्वारा प्रबंधित करने के लिए डिज़ाइन किया गया था, इसलिए आप संभावित रूप से इस पर भरोसा कर सकते हैं। इस समय, मेरे परीक्षण उपयोगकर्ता आईडी को 17 अक्षरों के रूप में इंगित करते हैं। इस समय, मैं इसे MySQL पर facebook_id varchar (50) के रूप में घोषित कर रहा हूं, क्योंकि आप कभी नहीं जानते कि अगला उपयोगकर्ता आईडी क्या हो सकती है। : -O –

2

वर्तमान में, फेसबुक यूआईडी 64 बिट पूर्णांक हैं। लेकिन मैं गारंटी नहीं दे सकता कि एक दिन नहीं बदलेगा।

संबंधित मुद्दे