2009-12-24 10 views
5

अधिकांश साइटों उपयोगकर्ता प्रोफ़ाइल किसी प्रकार का है कि कुछ इस तरह करना होगा या तो:प्रोफ़ाइल, संख्या या नाम के लिए सबसे अच्छा क्या है?

profile.php यू = 123445

वरना:

profile.php यू = जेसन? डेविस

तो मैं उत्सुक हूं, क्या प्रोफ़ाइल रिकॉर्ड देखने के लिए किसी संख्या का उपयोग करके php/mysql vs. के साथ प्रोफ़ाइल देखने के लिए नाम का उपयोग करना धीमा होगा?

उत्तर

12

शायद एक स्ट्रिंग लुकअप शायद हर मामले में एक संख्यात्मक से धीमा हो जाएगा। लेकिन अंतर इतना छोटा है कि इसे कभी नहीं देखा जाएगा। जब तक आपके पास वास्तव में उपयोगकर्ताओं की बड़ी संख्या नहीं है।

लेकिन जांचें SO: वे दोनों करते हैं।

http://stackoverflow.com/users/187606/pekka 

तेज डेटाबेस पहुंच को तेज करने की संख्या।

अच्छा दिखने वाला नाम, और खोज इंजन दृश्यता।

दो नामों के साथ कोई विवाद नहीं, क्योंकि आईडी को रिकॉर्ड खोजने के लिए उपयोग किया जाता है।

मुझे लगता है कि यह दोनों दुनिया और इष्टतम का सर्वोत्तम है।

हालांकि यूआरएल पुनर्लेखन की आवश्यकता है।

+0

डीबी लुकअप में किसी नाम से तेज संख्या क्यों है? (मान लीजिए दोनों अनुक्रमित हैं)। –

+0

मैं कोई डेटाबेस विशेषज्ञ नहीं हूं, लेकिन सामान्य ज्ञान मुझे बताता है कि एक सूचकांक (जो एक रिकॉर्ड संख्या में स्ट्रिंग के हिस्से का रूपांतरण है) हमेशा रिकार्ड नंबर के प्रत्यक्ष संदर्भ से धीमा होना चाहिए। महत्वहीन रूप से धीमा, लेकिन अभी भी धीमा। अगर मैं गलत हूं तो मुझे सही करो। –

+3

@Esteban, एक संख्या एक निश्चित चौड़ाई पूर्णांक (4 बाइट्स कहें) के रूप में संग्रहीत होने की संभावना है (उदाहरण के लिए) 32-बाइट स्ट्रिंग के विपरीत। तुलना कम होगी क्योंकि कम डेटा है, लेकिन सबसे महत्वपूर्ण बात यह है कि इंडेक्स का प्रत्येक पृष्ठ अधिक रिकॉर्ड स्टोर करेगा, जिससे कम डिस्क I/O हो जाएगी। – paxdiablo

-1

यदि नाम डेटाबेस में एक कुंजी है, तो लुकअप के समय बहुत अलग नहीं होने चाहिए, और एक नाम का उपयोग करने से आपको अच्छे दिखने वाले यूआरएल मिलेंगे, इसलिए मैं नामों का उपयोग करने के लिए सुझाव दूंगा।

+0

नाम डेटाबेस में एक कुंजी बेहतर नहीं है, या आपको एक समस्या होगी जब एक और उदाहरण जॉन स्मिथ एक खाता खोलने की कोशिश करता है। –

+0

बेशक, आप जॉन नाम जैसे उपयोगकर्ता नामों को खुश कर रहे हैं। स्मिथ.76352574763 :-) – paxdiablo

+0

रुको, आपका मतलब है कि अधिकांश वेबसाइटें आपको एक ही नाम से दो खाते खोलने की अनुमति देती हैं? –

2

नाम डीबग करने के लिए और अधिक पठनीय और आसान होगा, लेकिन नाम अद्वितीय होने की गारंटी नहीं है, इसलिए इसे एक यूनिकिफायर द्वारा बढ़ाया जाना चाहिए (मुझे विश्वास है कि यह वास्तव में एक शब्द है, जो एकीकरण में उपयोग किया जाता है) उदा। नाम के अंत में अंक संलग्न करें।

0

यदि आप डीबी इंडेक्स का उपयोग करते हैं, तो यह ध्यान से धीमा नहीं होना चाहिए। लेकिन अगर आपके पास दो जेसन डेविस हैं तो क्या होगा? यूआईडी अच्छे हैं क्योंकि आप विशिष्टता की गारंटी दे सकते हैं।

1

एक नाम का उपयोग करने के साथ मुझे जो मुख्य समस्या दिखाई देती है वह लुकअप की गति नहीं है, लेकिन तथ्य यह है कि आप ओमाहा, नेब्रास्का से जेसन डेविस और वेस्टर्न ऑस्ट्रेलिया के पर्थ से जेसन डेविस नहीं ले सकते हैं।

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

0

दोनों गलत हैं। आप u. 12345 पैरामीटर के रूप में profile.php प्राप्त नहीं करना चाहते हैं। आप उपयोगकर्ता 12345 की प्रोफाइल प्राप्त करना चाहते हैं। तो/प्रोफ़ाइल/12345 का उपयोग करें।

बाकी के बारे में कुछ पढ़ें, यह अच्छा है :)

0

यह एक प्रोफाइल देखने के लिए एक नाम का उपयोग करने में धीमी हो जाएगा [...]?

यदि आप इसका परीक्षण करेंगे, तो आप पाएंगे कि इसके बारे में परेशान होने के लिए पर्याप्त अंतर नहीं है। यदि आप प्रदर्शन के बारे में चिंतित हैं तो यह आपको चिंता करने वाली आखिरी बात होनी चाहिए।

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

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