🎧 Listen to this article: English
🌍 Read this in your language: हिंदी · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · ଓଡ଼ିଆ · 日本語 · 中文
பயன்பாடுகள் நூறாயிரக்கணக்கிலிருந்து மில்லியன் கணக்கான பதிவுகளாக வளரும்போது, மோசமாக மேம்படுத்தப்பட்ட database queries குறிப்பிடத்தக்க இடையூறுகளாக மாறக்கூடும். மெதுவான queries சர்வர் வளங்களை தீர்த்து, செயல்திறனைக் குறைக்கும். இந்தக் கட்டுரையில், MySQL மற்றும் SQL Server போன்ற relational database systems-ல் மெதுவான SQL queries-ஐக் கண்டறிந்து மேம்படுத்துவதற்கான நடைமுறை உத்திகளை ஆராய்வோம்.
1. பயன்படுத்துவதைத் தவிர்க்கவும் SELECT * Production-ல்
ஒரு பொதுவான தவறு பயன்படுத்துவது SELECT * அனைத்து columns-ஐயும் மீட்டெடுக்க. இது தேவையற்ற தரவு பரிமாற்றத்திற்கு வழிவகுக்கும் மற்றும் செயல்திறனை மெதுவாக்கும். எடுத்துக்காட்டாக:
SELECT * FROM orders WHERE customer_id = 4502;
இது ஏன் செயல்திறனைப் பாதிக்கிறது:
- I/O மற்றும் நெட்வொர்க் ஓவர்ஹெட் (I/O and Network Overhead): பெரிய columns-ஐ மீட்டெடுப்பது தேவையற்ற பைட்டுகளைப் பரிமாற்றக்கூடும்.
- Covering Indexes-ஐத் தடுக்கிறது: கோரப்பட்ட அனைத்து columns-உம் index-ல் இருந்தால் மட்டுமே, அடிப்படை அட்டவணையைப் படிக்காமல் ஒரு index-ஆல் query-ஐப் பூர்த்தி செய்ய முடியும்.
தீர்வு:
உங்களுக்குத் தேவையான columns-ஐ மட்டும் குறிப்பிடவும்:
SELECT order_id, total_amount, order_status, created_at
FROM orders
WHERE customer_id = 4502;
2. இதைக் கொண்டு இடையூறுகளைக் கண்டறிதல் EXPLAIN
Indexes-ஐச் சேர்ப்பதற்கு முன், database உங்களது query-ஐ எவ்வாறு இயக்குகிறது என்பதைப் பகுப்பாய்வு செய்வது முக்கியம். இதைப் பயன்படுத்தவும்: EXPLAIN கட்டளை (command):
EXPLAIN SELECT order_id, total_amount
FROM orders
WHERE customer_id = 4502 AND order_status = 'COMPLETED';
ஆய்வு செய்ய வேண்டிய முக்கிய அளவீடுகள்:
type: இதைத் தேடுங்கள்ALL(முழு அட்டவணை ஸ்கேன்). நீங்கள் பார்க்க விரும்புவதுref,eq_ref, அல்லதுrange.rows: ஆய்வு செய்யப்பட்ட வரிசைகளின் மதிப்பிடப்பட்ட எண்ணிக்கையைக் குறிக்கிறது. அதிக எண்ணிக்கை என்பது index விடுபட்டுள்ளதைக் குறிக்கிறது.key: எந்த index தேர்ந்தெடுக்கப்பட்டது என்பதைக் குறிக்கிறது. ஒருவேளைNULL, எந்த index-உம் பயன்படுத்தப்படவில்லை.Extra: இதில் எச்சரிக்கையாக இருங்கள்Using filesortஅல்லதுUsing temporary.
3. Multi-Column (Composite) Indexes-ஐ சரியாக வடிவமைத்தல்
பல நிபந்தனைகளை query செய்யும் போது, ஒரு composite index பயனுள்ளதாக இருக்கும். Leftmost Prefix Rule காரணமாக columns-இன் வரிசை முக்கியமானது. எடுத்துக்காட்டாக:
CREATE INDEX idx_orders_customer_status
ON orders (customer_id, order_status);
Leftmost Prefix Rule எவ்வாறு செயல்படுகிறது:
- இதன் மீதான தேடல்
customer_idமட்டும் இந்த index-ஐப் பயன்படுத்தும். - இரண்டின் மீதான தேடலும்
customer_idமற்றும்order_statusஇந்த index-ஐப் பயன்படுத்தும். - இதன் மீதான தேடல்
order_statusமட்டும் இந்த index-ஐப் பயனுள்ள வகையில் பயன்படுத்த முடியாது.
4. Indexed Columns-ல் Functions-ஐத் தவிர்க்கவும் (SARGability)
Indexed columns-ல் functions-ஐப் பயன்படுத்துவது திறமையான index பயன்பாட்டைத் தடுக்கலாம். எடுத்துக்காட்டாக:
SELECT order_id FROM orders
WHERE DATE(created_at) = '2026-09-01';
SARGable மாற்று:
வெளிப்படையான வரம்புடன் ஒப்பிடுவதன் மூலம் query-ஐ SARGable-ஆக (Search Argument Able) மாற்றவும்:
SELECT order_id FROM orders
WHERE created_at >= '2026-09-01 00:00:00'
AND created_at < '2026-09-02 00:00:00';
5. Case Study: 3-Column Composite Index மூலம் Chat Message Latency-ஐ 1,000%+ குறைத்தல்
ஒரு நிஜ உலக வழக்கில், மூன்று columns மீதான ஒரு composite index query செயல்திறனை வியத்தகு முறையில் மேம்படுத்தியது. அசல் அமைப்பிற்கு முழு அட்டவணை ஸ்கேன் தேவைப்பட்டது, இது அதிக latency-க்கு வழிவகுத்தது. ஒரு composite index-ஐச் செயல்படுத்திய பிறகு, query latency கணிசமாகக் குறைந்தது.
Index-க்கு முன்:
- Full Table Scan: database ஒவ்வொரு வரிசையையும் ஆய்வு செய்தது.
- High Latency: Queries சராசரியாக 1,200ms முதல் 2,500ms வரை எடுத்தன.
Index-க்கு பின்:
- தரவுக்கான நேரடி அணுகல்: database தேவையான பதிவுகளுக்கு நேரடியாகச் செல்ல முடிந்தது.
- Low Latency: Queries சுமார் 1.8ms ஆக குறைந்தது.
இந்த உத்திகளைச் செயல்படுத்துவதன் மூலம், டெவலப்பர்கள் SQL query செயல்திறனை மேம்படுத்த முடியும், இது சிறந்த பயனர் அனுபவத்தை வழங்கும் மிகவும் திறமையான பயன்பாடுகளுக்கு வழிவகுக்கும்.
முடிவுரை
பயன்பாடுகள் விரிவடையும் போது SQL queries-ஐ மேம்படுத்துவது முக்கியமானது. பொதுவான ஆபத்துகளைத் தவிர்ப்பதன் மூலமும், indexing உத்திகளைப் பயன்படுத்துவதன் மூலமும், database செயல்திறனை நீங்கள் கணிசமாக மேம்படுத்த முடியும்.
நன்மைகள்
- மேம்படுத்தப்பட்ட query செயல்திறன்.
- குறைக்கப்பட்ட சர்வர் வளப் பயன்பாடு.
- மேம்படுத்தப்பட்ட பயனர் அனுபவம்.
தீமைகள்
- கவனமான திட்டமிடல் மற்றும் பகுப்பாய்வு தேவை.
- தவறாக உள்ளமைக்கப்பட்ட indexes மோசமான செயல்திறனுக்கு வழிவகுக்கும்.
எச்சரிக்கை
இந்தக் கட்டுரை கல்வி நோக்கங்களுக்கானது. எந்தவொரு placeholder மதிப்புகளையும் உங்கள் குறிப்பிட்ட தரவைக் கொண்டு மாற்றவும். தகவல்களை நம்புவதற்கு முன் எப்போதும் அசல் மூலத்துடன் சரிபார்க்கவும்.
அடிக்கடி கேட்கப்படும் கேள்விகள்
- SQL query உகப்பாக்கம் என்றால் என்ன? — SQL query உகப்பாக்கம் என்பது, இயங்கும் நேரம் மற்றும் வள நுகர்வைக் குறைக்க database queries-இன் செயல்திறனை மேம்படுத்துவதை உள்ளடக்குகிறது.
- நான் ஏன் தவிர்க்க வேண்டும்
SELECT *? — பயன்படுத்துவதுSELECT *அனைத்து columns-ஐயும் மீட்டெடுக்கிறது, இது தேவையற்ற தரவு பரிமாற்றத்திற்கும் மெதுவான செயல்திறனுக்கும் வழிவகுக்கும். - மெதுவான queries-ஐ நான் எவ்வாறு கண்டறிவது? — இதைப் பயன்படுத்தவும்
EXPLAINஉங்கள் queries-ஐ database எவ்வாறு இயக்குகிறது என்பதைப் பகுப்பாய்வு செய்யவும், இடையூறுகளைக் கண்டறியவும் இந்தக் கட்டளையைப் பயன்படுத்தவும். - Composite index என்றால் என்ன? — Composite index என்பது பல columns மீதான ஒரு index ஆகும், இது அந்த columns-ஐ உள்ளடக்கிய தேடல்களுக்கான query செயல்திறனை மேம்படுத்தும்.
- SARGable என்பதன் அர்த்தம் என்ன? — SARGable என்பது Search Argument Able என்பதைக் குறிக்கிறது, அதாவது ஒரு query-ஆல் திறமையாக ஒரு index-ஐப் பயன்படுத்த முடியும்.
- Query latency-ஐ நான் எவ்வாறு மேம்படுத்தலாம்? — சரியான indexing உத்திகளைச் செயல்படுத்துவது மற்றும் திறமையற்ற queries-ஐத் தவிர்ப்பது query latency-ஐக் கணிசமாகக் குறைக்கலாம்.
குறிச்சொற்கள்
#sql #database #optimization #performance #indexing #query #development #tech
Prompt-Injection Defense Checklist
The controls that actually reduce the blast radius when your app feeds untrusted text to an LLM. Enter your email — you'll get the PDF instantly, plus new posts on AI, security & Linux.
Free. No spam — unsubscribe in one click.


Responses
Sign in to leave a response.