मेरी पोस्ट यहाँ मैं का वर्णन है, विस्तार से, एक तकनीक है कि कुछ अतिरिक्त भंडारण की कीमत पर, करने की अनुमति देता तेज %infix%
खोज के लिए LIKE
साथ सूचकांक का उपयोग करें:
https://stackoverflow.com/a/22531268/543814
जब तक तार अपेक्षाकृत छोटे होते हैं, भंडारण आवश्यकता आमतौर पर स्वीकार्य होती है।
गूगल के अनुसार, औसत ई-मेल एड्रेस 25
वर्ण लंबा है। यह औसतन 12.5
पर आपके आवश्यक भंडारण को बढ़ाता है, और आपको बदले में तेजी से अनुक्रमित खोज देता है। मेरे दृष्टिकोण से (गणना के लिए मेरी पोस्ट देखें।)
, यदि आप 10'000 ई-मेल पतों भंडारण कर रहे हैं, आप ठीक भंडारण (के समकक्ष) 100'000 ई-मेल पतों के बारे में भी होना चाहिए। यदि यह एक सूचकांक का उपयोग करने की अनुमति देने के लिए होता है, जो एक स्वीकार्य व्यापार-बंद की तरह लगता है। अक्सर, डिस्क स्थान सस्ता है, जबकि गैर अनुक्रमित खोज अनावश्यक हैं।
आप इस दृष्टिकोण लेने के लिए चुनते हैं, तो मेरा सुझाव है कि आप 64
वर्णों के लिए ई-मेल पतों के इनपुट लंबाई की सीमा। ऐसी लंबाई के उन दुर्लभ (या हमलावर) ई-मेल पते को सामान्य भंडारण 32
तक की आवश्यकता होगी। यह आपको देता है:
- आपके डेटाबेस को बाढ़ करने की कोशिश कर रहे हमलावर के खिलाफ सुरक्षा, क्योंकि ये अभी भी बहुत ही प्रभावशाली मात्रा में डेटा नहीं हैं।
- उम्मीद है कि अधिकांश ई-मेल पते इस लंबाई के नहीं हैं।
आप 64
पात्रों बेहद कठोर एक आवश्यकता पर विचार करते हैं, तो 255
बजाय का उपयोग करें, 127.5
की बुरी से बुरी हालत भंडारण वृद्धि कारक के लिए। हास्यास्पद? संभवतः। संभावना है? नहीं फास्ट? बहुत।
[कि explaination] (http://use-the-index-luke.com/sql/where-clause/searching-for-ranges/like-performance-tuning) को समझने के लिए क्यों यह काम नहीं कर रहा मदद कर सकता है। –
[** यह उत्तर **] (http://stackoverflow.com/a/22531268/793309) एक अच्छी तकनीक दिखाता है - सभी प्रत्यय अनुक्रमणित करना - जो इस प्रकार की क्वेरी को बहुत अच्छी तरह से कर सकता है, लेकिन कुछ की कीमत पर अतिरिक्त कोडिंग और अधिक भंडारण आवश्यकताओं। – antinome