Junior
რის შემთხვევებში გამოიყენება ინდექსები მონაცემთა ბაზებში?
sobes.tech AI
პასუხი AI-სგან
දත්ත ආශ්රිත දත්ත සමුදායන්හි දර්ශක (Index) භාවිතා කරන්නේ විමසුම් ක්රියාවලිය වේගවත් කිරීම සඳහාය, විශේෂයෙන්:
- දත්ත සෙවීම:
SELECTක්රියාවලිය වේගවත් කිරීම, විශේෂයෙන්WHERE,JOINසහORDER BYකොන්දේසියන් සමඟ. දර්ශකයක් DBMS-ට අවශ්ය පේළි වේගයෙන් සොයා ගැනීමට ඉඩ සලසයි, සම්පූර්ණ වගුව ස්කෑන් නොකර. - වර්ගීකරණය:
ORDER BYමඟින් වර්ගීකරණ වේගවත් කිරීම. වර්ගීකරණ සඳහා දර්ශකයක් තිබේ නම්, එය භාවිතා කර DBMS-ට එහි අනුක්රමය භාවිතා කළ හැකිය, අමතර වර්ගීකරණ ක්රියාවලියන් වලින් වළක්වයි. - ටේබල් එකතු කිරීම: දර්ශකිත කොලම් මත
JOINක්රියාවලිය වේගවත් කිරීම. දර්ශකය සම්බන්ධිත වගු වල අදාළ පේළි වේගයෙන් සොයා ගැනීමට උපකාරී වේ. - දත්ත අද්විතීයතාව: කොලමක අගයන්ගේ අද්විතීයතාවය සහතික කිරීම (අද්විතීය දර්ශකයක් මඟින්).
- ප්රාථමික යතුරු: ප්රාථමික යතුර ස්වයංක්රීයව අද්විතීය දර්ශකයක් වන අතර, ඒකක අංකය මත වේගවත් ප්රවේශය සඳහා භාවිතා වේ.
- දෙවන යතුරු: සම්බන්ධිත වගු අතර සබැඳි දත්ත ආරක්ෂා කිරීම සහ
JOINක්රියාවලිය වේගවත් කිරීම සඳහා භාවිතා වේ.
දර්ශක කිරීම සඳහා කොලම් උදාහරණ:
- බොහෝ විට සෙවීම සිදු වන කොලම් (
WHERE uid = 123). JOINකොන්දේසියන්හි භාවිතා වන කොලම් (table1.id = table2.ref_id).- බොහෝ විට වර්ගීකරණය සිදු වන කොලම් (
ORDER BY created_at DESC). - උසස් කාඩිනල්කම ඇති කොලම් (බොහෝ අද්විතීය අගයන්).
ආවරණ, අවශ්ය නොවන හෝ අකාර්යක්ෂම විය හැකි අවස්ථා:
- ඉතා කුඩා වගු: කුඩා වගු වලදී, ස්කෑනීම වේගවත් විය හැකිය හෝ සෙවීමේ ද්රව්ය සමඟ සසඳා බලන විට සමහරවිට සමාන වේගයෙන් සිදු විය හැක.
- අඩු කාඩිනල්කම ඇති කොලම්:
TRUE/FALSEවැනි boolean ක්ෂේත්රයක දර්ශකයක් මගින් විශාල ප්රතිඵල ලබා නොදෙයි. - සැමවිට ලිවීමේ ක්රියාවලියන් (INSERT, UPDATE, DELETE): දර්ශකයන් දත්ත වෙනස්වීමේදී යාවත්කාලීන විය යුතුය, එමනිසා ලිවීමේ ක්රියාවලියන් මන්දගාමිය හැකිය. සියලු කොලම් සඳහා දර්ශක තබා නොවිය යුතුය.
WHEREකොන්දේසියන්හි ක්රියාවලියන් සමඟ කොලම්:WHEREහි කොලමකට ක්රියාවලියක් යෙදුවහොත් (උදාහරණයක් ලෙස,WHERE YEAR(date_column) = 2023), සාමාන්ය දර්ශකය භාවිතා නොවේ. මෙයට ක්රියාවලියන් මූලික දර්ශකයක් (ඇත්නම්) හෝ ප්රශ්නය නැවත ලිවිය යුතුය.
දර්ශක කිරීම සඳහා කොලම් තෝරා ගැනීම සහ දර්ශක වර්ගය (B-තල, hash, full-text ආදිය) දත්තවල ස්වභාවය, විමසුම් ස්වභාවය සහ භාවිතා කරන දත්ත පද්ධතිය මත පදනම් වේ.