वे सही हैं। CHAR(30) टेक्स्ट फ़ील्ड में शामिल होना - विशेष रूप से व्यक्ति का नाम डेटा युक्त - धीमा, अत्यधिक अक्षम और अविश्वसनीय रूप से नाजुक होगा। लोग अपना नाम बदलते हैं (विवाह इसका स्पष्ट उदाहरण है), और कई लोगों का एक ही नाम हो सकता है।
आप उस क्रम का समर्थन करने के लिए अपनी तालिकाओं पर उपयुक्त अनुक्रमणिका बनाना चाहते हैं जिसमें आप डेटा दिखाना चाहते हैं, और क्लस्टरिंग को भूल जाएं। आपकी प्रदर्शन अनुकूलन प्रक्रिया एक आपदा की तरह लगती है जो घटित होने वाली जगह की तलाश में है। क्षमा करें, लेकिन इस तरह से तालिकाओं को गिराना/बनाना परेशानी मांग रहा है।
मैं Customer.id पर एक UNIQUE INDEX के साथ शुरू करूँगा, transaction.ticket_number पर एक UNIQUE INDEX, और एक INDEX (कार्डिनैलिटी के बजाय प्रदर्शन के लिए, इसलिए लेन-देन (आईडी, टिकट_नंबर डीईएससी) पर विशिष्टता को लागू करना बहुत महत्वपूर्ण नहीं है), और इसे से लें। वहाँ। डेटा को लेन-देन तालिका से उसी क्रम में लौटाया जाता है जिस क्रम में वह अनुक्रमणिका में दिखाई देता है।
मैं क्लस्टरिंग पर तभी विचार करूंगा जब क्वेरी ऑप्टिमाइज़ेशन के अन्य सभी रास्ते समाप्त हो गए हों।