How to Improve LIKE Query Performance in MySQL | Optimization Techniques
अब जब हमने समझ लिया कि leading wildcard (‘%term%’) index का use नहीं करता,
तो सवाल उठता है 👉 “MySQL LIKE query fast कैसे बनाएं?”
नीचे कुछ tested optimization methods दिए गए हैं जो performance को कई गुना बेहतर बना सकते हैं।
1️⃣ Use Indexed Prefix Searches
अगर possible हो तो हमेशा search pattern की शुरुआत fixed prefix से करें।
इससे MySQL Index Seek perform करता है बजाय full table scan के।
— ✅ Fast (Index Used)
SELECT * FROM products
WHERE name LIKE ‘Sam%’;
यहाँ Sam% prefix MySQL को exact search range देता है, जिससे query बहुत तेज़ चलती है।
2️⃣ Use FULLTEXT Index for Text Columns
अगर आपकी search large text data (जैसे product description, comments, reviews) में है,
तो FULLTEXT Index सबसे effective तरीका है।
ALTER TABLE products ADD FULLTEXT(name, description);
SELECT * FROM products
WHERE MATCH(name, description) AGAINST(‘smartphone’ IN NATURAL LANGUAGE MODE);
✅ Result: MySQL advanced text search algorithms का use करता है — जो LIKE ‘%term%’ से कई गुना faster होता है।
3️⃣ Try INSTR() or LOCATE() Function
Simple substring search के लिए आप INSTR() या LOCATE() functions use कर सकते हैं।
ये functions कुछ cases में LIKE से तेज़ होते हैं, खासकर छोटे tables में।
SELECT * FROM products
WHERE INSTR(name, ‘phone’) > 0;
4️⃣ Use REGEXP_LIKE() for Complex Patterns
MySQL 8.0 से REGEXP_LIKE() function available है — जो regular expressions support करता है।
यह LIKE से ज़्यादा powerful है, लेकिन थोड़ा slower भी हो सकता है।
SELECT * FROM users
WHERE REGEXP_LIKE(email, ‘^[a-zA-Z0-9._%+-]+@gmail\\.com$’);
5️⃣ Reverse Indexing Technique (Advanced)
अगर आपको हमेशा suffix-based search करनी है (जैसे ‘%term’),
तो आप data को reverse करके एक extra column बना सकते हैं जिसपर index लगाया जाए।
ALTER TABLE customers ADD COLUMN name_rev VARCHAR(100);
UPDATE customers SET name_rev = REVERSE(name);
CREATE INDEX idx_name_rev ON customers(name_rev);
SELECT * FROM customers
WHERE name_rev LIKE REVERSE(‘muel%’);
यह trick MySQL को suffix-based searches के लिए भी index use करने की अनुमति देता है — advanced optimization technique 🔥
🚀 Summary:
– Always use prefix-based LIKE queries (‘term%’)
– For big text, prefer FULLTEXT search
– Try INSTR() for smaller datasets
– REGEXP_LIKE() = powerful but slower
– Reverse indexing = smart trick for suffix searches