डेटाबेस में इंडेक्स आमतौर पर आपके जहां क्लॉज में परिभाषित कुछ की तलाश करते समय प्रदर्शन को बढ़ाने के लिए उपयोग किया जाता है। हालाँकि जब कुछ पाठ को फ़िल्टर करने की बात आती है, उदा। WHERE TextColumn LIKE '%searchstring%'
. जैसी किसी चीज़ का उपयोग करना तब खोज धीमी होती है, क्योंकि जिस तरह से नियमित डेटाबेस इंडेक्स काम करता है, वह एक कॉलम की 'संपूर्ण सामग्री' के खिलाफ मैचों के लिए अनुकूलित होता है, न कि उसके एक हिस्से के लिए। विशिष्ट रूप से LIKE खोज जिसमें वाइल्डकार्ड शामिल हैं, किसी भी प्रकार के अनुक्रमणिका का उपयोग नहीं कर सकते हैं।
जैसा कि नीचे टिप्पणी में बताया गया है, MySQL को MATCH () ... AGAINST
. की आवश्यकता है फुलटेक्स्ट इंडेक्स में खोजने के लिए सिंटैक्स; BTW यह डेटाबेस विक्रेता के आधार पर भिन्न होता है। MS SQL में आप CONTAINS
. का उपयोग कर सकते हैं इसलिए इसे ध्यान में रखें जब आप अन्य डेटाबेस का भी समर्थन करने की योजना बनाते हैं।
फ़ुलटेक्स्ट इंडेक्स नियमित टेक्स्ट के लिए बेहतर काम करते हैं, क्योंकि वे इस प्रकार के कॉलम के लिए अनुकूलित होते हैं। बहुत सरलीकृत:वे पाठ को शब्दों में विभाजित करते हैं और शब्दों पर एक अनुक्रमणिका बनाते हैं न कि संपूर्ण पाठ। विशिष्ट शब्दों को खोजते समय टेक्स्ट खोजों के लिए यह बहुत तेज़ी से काम करता है।