SQL CREATE INDEX Statement என்றால் என்ன?
CREATE INDEX அறிக்கை அட்டவணைகளில் குறியீடுகளை (indexes) உருவாக்கப் பயன்படுகிறது.
குறியீடுகள் தரவுத்தளத்திலிருந்து தரவை வேறுவிதமாக இருப்பதை விட விரைவாக மீட்டெடுக்கப் பயன்படுகின்றன. பயனர்கள் குறியீடுகளைப் பார்க்க முடியாது, அவை தேடல்கள்/குவெரிகளை விரைவுபடுத்த பயன்படுத்தப்படுகின்றன.
முக்கியமான குறிப்பு:
குறியீடுகள் உள்ள அட்டவணையைப் புதுப்பிப்பது குறியீடுகள் இல்லாத அட்டவணையைப் புதுப்பிப்பதை விட அதிக நேரம் எடுக்கும் (ஏனெனில் குறியீடுகளுக்கும் புதுப்பிப்பு தேவை). எனவே, அடிக்கடி தேடப்படும் நெடுவரிசைகளில் மட்டுமே குறியீடுகளை உருவாக்கவும்.
CREATE INDEX தொடரியல்
ஒரு அட்டவணையில் குறியீட்டை உருவாக்குகிறது. நகல் மதிப்புகள் அனுமதிக்கப்படுகின்றன:
அடிப்படை CREATE INDEX தொடரியல்:
CREATE INDEX index_name
ON table_name (column1, column2, ...);
CREATE UNIQUE INDEX தொடரியல்
ஒரு அட்டவணையில் தனித்துவமான குறியீட்டை உருவாக்குகிறது. நகல் மதிப்புகள் அனுமதிக்கப்படாது:
UNIQUE INDEX தொடரியல்:
CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...);
குறிப்பு:
குறியீடுகளை உருவாக்குவதற்கான தொடரியல் வெவ்வேறு தரவுத்தளங்களில் மாறுபடும். எனவே: உங்கள் தரவுத்தளத்தில் குறியீடுகளை உருவாக்குவதற்கான தொடரியலைச் சரிபார்க்கவும்.
CREATE INDEX உதாரணம்
கீழே உள்ள SQL அறிக்கை "Persons" அட்டவணையில் "LastName" நெடுவரிசையில் "idx_lastname" என்ற பெயரில் ஒரு குறியீட்டை உருவாக்குகிறது:
ஒற்றை நெடுவரிசை குறியீடு:
CREATE INDEX idx_lastname
ON Persons (LastName);
நெடுவரிசைகளின் கலவையில் குறியீட்டை உருவாக்க விரும்பினால், நெடுவரிசை பெயர்களை அடைப்புக்குறிக்குள் பட்டியலிடலாம், காற்புள்ளிகளால் பிரிக்கப்பட்டு:
பல நெடுவரிசை குறியீடு:
CREATE INDEX idx_pname
ON Persons (LastName, FirstName);
DROP INDEX அறிக்கை
DROP INDEX அறிக்கை ஒரு அட்டவணையில் உள்ள குறியீட்டை நீக்கப் பயன்படுகிறது.
MS Access:
DROP INDEX index_name ON table_name;
SQL Server:
DROP INDEX table_name.index_name;
DB2/Oracle:
DROP INDEX index_name;
MySQL:
ALTER TABLE table_name
DROP INDEX index_name;
குறியீட்டின் நன்மைகள் மற்றும் கருத்துகள்
நன்மைகள்
- தரவு மீட்பு வேகத்தை கணிசமாக மேம்படுத்துகிறது
- தேடல் மற்றும் வரிசைப்படுத்தல் செயல்திறனை மேம்படுத்துகிறது
- JOIN செயல்பாடுகளின் செயல்திறனை மேம்படுத்துகிறது
- WHERE விதிமுறைகளுடன் குவெரிகளை விரைவுபடுத்துகிறது
கருத்துகள்
- கூடுதல் சேமிப்பக இடம் தேவைப்படுகிறது
- INSERT, UPDATE, DELETE செயல்பாடுகளை மெதுவாக்குகிறது
- அடிக்கடி புதுப்பிக்கப்படும் நெடுவரிசைகளுக்கு பொருத்தமற்றது
- பல குறியீடுகள் பராமரிப்பு சிக்கல்களை உருவாக்கும்
சிறந்த நடைமுறைகள்
- அடிக்கடி தேடப்படும் நெடுவரிசைகளில் குறியீடுகளை உருவாக்கவும்
- பெரிய அட்டவணைகளில் முதன்மையாக குறியீடுகளைப் பயன்படுத்தவும்
- WHERE, JOIN, ORDER BY பயன்படுத்தும் நெடுவரிசைகளை முன்னுரிமைப்படுத்தவும்
- குறியீடுகளின் செயல்திறனை வழமையாக மதிப்பீடு செய்யவும்
நடைமுறை உதாரணங்கள்
பயனர்கள் அட்டவணை
அடிக்கடி தேடப்படும் நெடுவரிசைகளுக்கான குறியீடுகள்
-- Email மூலம் விரைவான தேடல்
CREATE INDEX idx_users_email
ON Users (Email);
-- பெயர் மூலம் தேடல்
CREATE INDEX idx_users_name
ON Users (LastName, FirstName);
ஆர்டர்கள் அட்டவணை
தேதி மற்றும் நிலை அடிப்படையில் குவெரிகள்
-- தேதி அடிப்படையில் ஆர்டர்கள்
CREATE INDEX idx_orders_date
ON Orders (OrderDate);
-- நிலை மற்றும் தேதி அடிப்படையில்
CREATE INDEX idx_orders_status
ON Orders (Status, OrderDate);
தயாரிப்புகள் அட்டவணை
வகை மற்றும் விலை அடிப்படையில் வடிகட்டுதல்
-- வகை மூலம் தயாரிப்புகள்
CREATE INDEX idx_products_category
ON Products (CategoryID);
-- விலை வரம்பு குவெரிகள்
CREATE INDEX idx_products_price
ON Products (Price);
எப்போது குறியீடுகளைப் பயன்படுத்துவது
குறியீடுகள் பயனுள்ளதாக இருக்கும் போது
- பெரிய அட்டவணைகள் (10,000+ வரிசைகள்)
- அடிக்கடி தேடப்படும் நெடுவரிசைகள்
- WHERE, JOIN, ORDER BY பயன்படுத்தும் நெடுவரிசைகள்
- குறைவான NULL மதிப்புகள் கொண்ட நெடுவரிசைகள்
- தனித்துவமான மதிப்புகள் கொண்ட நெடுவரிசைகள்
குறியீடுகள் பயனுள்ளதாக இல்லாத போது
- சிறிய அட்டவணைகள்
- அடிக்கடி புதுப்பிக்கப்படும் நெடுவரிசைகள்
- பல NULL மதிப்புகள் கொண்ட நெடுவரிசைகள்
- குறைவான தனித்துவ மதிப்புகள் கொண்ட நெடுவரிசைகள்
- அரிதாக தேடப்படும் நெடுவரிசைகள்