सबसे पहले आपकी क्वेरी में थोड़ी सी त्रुटि है। यह होना चाहिए:
NOT REGEXP '^[[:digit:]]'
डबल स्क्वायर कोष्ठक नोट करें। तुम भी रूप में यह पुनर्लेखन सकता भी रिक्त स्ट्रिंग मिलान से बचने के लिए निम्नलिखित:
REGEXP '^[^[:digit:]]'
भी ध्यान रखें कि regexp का उपयोग कर इस्तेमाल किया जा रहा से एक सूचकांक से बचाता है और एक मेज स्कैन या सूचकांक स्कैन का परिणाम देगा। आप एक अधिक कुशल क्वेरी चाहते हैं तो आप regexp का उपयोग कर यदि यह संभव है बिना क्वेरी को फिर से लिखने की कोशिश करनी चाहिए:
SELECT DISTINCT(action) FROM actions
WHERE qkey = 140 AND action < '0'
UNION ALL
SELECT DISTINCT(action) FROM actions
WHERE qkey = 140 AND action >= ':'
तब (qkey, कार्रवाई) पर एक सूचकांक जोड़ें। यह पढ़ने के लिए सुखद नहीं है, लेकिन यह बेहतर प्रदर्शन देना चाहिए। यदि आपके पास प्रत्येक ककी के लिए केवल थोड़ी सी कार्रवाइयां हैं तो शायद यह कोई उल्लेखनीय प्रदर्शन वृद्धि नहीं देगी ताकि आप सरल क्वेरी के साथ रह सकें।
स्रोत
2010-04-05 16:43:32
इसके लिए धन्यवाद! – TwixxyKit