मैं कई क्षेत्रोंSQLite: 'searchstr%' को इंडेक्स का उपयोग करना चाहिए?
word_id — INTEGER PRIMARY_KEY
word — TEXT
...
..और ~ 150k पंक्तियों के साथ एक डीबी की है।
चूंकि यह एक शब्दकोश है, इसलिए मैं मास्क 'search_string%'
के साथ एक शब्द खोज रहा हूं। यह मेल खाने वाली पंक्तियों को खोजने के लिए 15ms लेते हुए ठीक काम करता था। तालिका में 'word'
फ़ील्ड के लिए एक अनुक्रमणिका है। हाल ही में मैंने तालिका को संशोधित किया है (उस तालिका के कुछ फ़ील्ड जो दायरे से बाहर हैं) और कुछ हुआ - यह क्वेरी निष्पादित करने में 400ms ले रहा है, इसलिए मैं समझता हूं कि यह अब इंडेक्स का उपयोग करने में विफल रहता है। स्ट्रिंगफोर्ड क्वेरी = जैसे 10ms परिणाम दिखाता है। क्या किसी को पता है कि यहां क्या हो रहा है?
मुझे ऐसा लगता है, शायद आप बी-पेड़ को देखना चाहते हैं क्योंकि बी-पेड़ श्रेणी क्वेरी में और तुलनात्मक रूप से कुशल हैं। – Jasonw
हम्म, बी-पेड़ के निर्माण का मानना नहीं है? तुम्हारा मतलब है, मुझे अपने आप से एक बी-पेड़ बनाना चाहिए? – nikans
क्या% हमेशा आपके खोज शब्द के अंत में है, कभी शुरू नहीं होता? – mikel