हम अपने MySQL डेटाबेस के लिए प्राथमिक कुंजी के रूप में UUID मानों का उपयोग करने पर विचार कर रहे हैं। डाला जा रहा डेटा दर्जनों, सैकड़ों, या यहां तक कि हजारों दूरस्थ कंप्यूटरों से उत्पन्न होता है और प्रति सेकंड 100-40,000 आवेषण की दर से डाला जाता है, और हम कभी भी कोई अपडेट नहीं करेंगे।
डेटाबेस स्वयं आमतौर पर लगभग ५० एम रिकॉर्ड प्राप्त कर लेगा, इससे पहले कि हम डेटा को लेना शुरू कर दें, इतना बड़ा डेटाबेस नहीं, लेकिन छोटा भी नहीं। हम भी InnoDB पर चलने की योजना बना रहे हैं, हालांकि हम यह बदलने के लिए खुले हैं कि अगर हम जो कर रहे हैं उसके लिए एक बेहतर इंजन है।
हम जावा के टाइप 4 यूयूआईडी के साथ जाने के लिए तैयार थे, लेकिन परीक्षण में कुछ अजीब व्यवहार देख रहे हैं। एक के लिए, हम varchar (36) के रूप में स्टोर कर रहे हैं और मुझे अब एहसास हुआ कि हम बाइनरी (16) का उपयोग करना बेहतर होगा - हालांकि मैं कितना बेहतर हूं, मुझे यकीन नहीं है।
बड़ा सवाल यह है: जब हम 50M रिकॉर्ड रखते हैं तो यह यादृच्छिक डेटा सूचकांक को कितनी बुरी तरह से पेंच करता है? यदि हम उपयोग करते हैं, तो क्या हम बेहतर होंगे, उदाहरण के लिए, टाइप -1 यूयूआईडी जहां बाईं ओर के बिटस्टैम्प थे? या हो सकता है कि हमें UUIDs को पूरी तरह से खोद देना चाहिए और auto_increment प्राथमिक कुंजी पर विचार करना चाहिए?
जब मैं MySQL में सूचकांक / प्राथमिक कुंजी के रूप में संग्रहीत किया जाता है, तो मैं विभिन्न प्रकार के UUIDs के प्रदर्शन पर सामान्य विचारों / युक्तियों की तलाश कर रहा हूं। धन्यवाद!