MySQL LIMIT සහ OFFSET පැහැදිලි කිරීම: පිටුගැලීම, කාර්ය සාධන ගැටළු, සහ හොඳම ක්‍රියාමාර්ග

1. LIMIT සහ OFFSET හි මූලික භාවිතය

MySQL හි, LIMIT සහ OFFSET යනු දත්ත ගබඩාවකින් විශේෂිත පරාසයක් කාර්යක්ෂමව ලබා ගැනීමට ඉතා ප්‍රයෝජනවත් විශේෂාංග වේ. ඒවා කෙසේ ක්‍රියා කරන්නේදැයි අවබෝධ කරගැනීමෙන්, ඔබට අවශ්‍ය රෙකෝඩ් පමණක් ලබා ගත හැකි අතර යෙදුමේ කාර්ය සාධනය වැඩිදියුණු කළ හැක. එවැනි මූලික භාවිතය පිළිබඳ විස්තරාත්මකව බලමු.

LIMIT සහ OFFSET වාක්‍යයන්ගේ භූමිකාව

LIMIT වාක්‍යය ආපසු ලබා දෙන පේළි ගණන සීමා කරයි. එයට විරුද්ධව, OFFSET වාක්‍යය දත්ත ලබා ගැනීමේ ආරම්භක ස්ථානය නියම කරයි. මෙම දෙකම එකට එකතු කිරීමෙන්, ඔබට විශාල දත්ත කට්ටලයකින් අවශ්‍ය පරාසය පමණක් ලබා ගත හැක.

උදාහරණය

පහත උදාහරණය 20 වන පේළියෙන් ආරම්භ කර 10 රෙකෝඩ් ලබා ගනී.

SELECT * FROM table_name LIMIT 10 OFFSET 20;

මෙම විමසුමේ, OFFSET නිසා ලබා ගැනීම 20 වන පේළියෙන් ආරම්භ වේ, සහ LIMIT ප්‍රතිඵලය 10 පේළි වලට සීමා කරයි. OFFSET අතුරුදන් කරන්නේ නම්, එය 0 ලෙස ගණනය කරයි, සහ නියමිත පේළි ගණන වගුවේ ආරම්භයෙන් ලබා ගනු ලැබේ.

OFFSET අතුරුදන් වූ විට හැසිරීම

OFFSET අතුරුදන් කරන්නේ නම්, LIMIT විසින් නියමිත පේළි ගණන වගුවේ ආරම්භයෙන් ලබා ගනු ලැබේ. උදාහරණයක් ලෙස, පහත විමසුම වගුවේ පළමු 10 පේළි ලබා ගනී.

SELECT * FROM table_name LIMIT 10;

2. පිටුගත කිරීම ක්‍රියාත්මක කිරීමේ ක්‍රමය

වෙබ් අඩවි හෝ යෙදුම් වල විශාල දත්ත ප්‍රමාණයක් හසුරවන්නේ නම්, සියලු රෙකෝඩ් එකවර පෙන්වීම ප්‍රායෝගික නොවේ. එබැවින්, දත්ත පිටු වලට බෙදා පෙන්වීම (pagination) සාමාන්‍ය ක්‍රියාවලියකි. LIMIT සහ OFFSET භාවිතයෙන්, ඔබට එක් එක් පිටුව සඳහා වෙනස් රෙකෝඩ් ලබා ගත හැක.

පිටු අංකය අනුව LIMIT සහ OFFSET සකස් කිරීම

ඔබ එක් පිටුවකට 10 රෙකෝඩ් පෙන්වන්නේ නම්, පිටු 1 සඳහා OFFSET 0, පිටු 2 සඳහා 10, පිටු 3 සඳහා 20 වැනි ලෙස වේ. මෙය ඔබට පිටු අංකය අනුව LIMIT සහ OFFSET ගතිකව සකස් කිරීමට ඉඩ සලසයි.

උදාහරණය

පිටුව 1 සඳහා විමසුම:

SELECT * FROM table_name LIMIT 10 OFFSET 0;

පිටුව 2 සඳහා විමසුම:

SELECT * FROM table_name LIMIT 10 OFFSET 10;

පිටු අංකය අනුව OFFSET සකස් කිරීමෙන්, ඔබට විවිධ පිටු සඳහා නිවැරදිව දත්ත ලබා ගත හැක.

පිටුගත කිරීමේ වැදගත් සැලකිලි

OFFSET සමඟ පිටුගත කිරීම ක්‍රියාත්මක කරන විට, ආරම්භක ස්ථානය දත්ත කට්ටලයේ ගැඹුරු වෙත ගමන් කරන විට විමසුම් සැකසීමේ කාලය වැඩි වන බවට අවධානයෙන් සිටින්න. මෙය සිදුවන්නේ දත්ත ගබඩාවට නියමිත OFFSET තෙක් සියලු පේළි කියවා ඉවත් කිරීමට සිදුවීම නිසාය.

3. OFFSET භාවිතා කිරීමේ කාර්ය සාධන සැලකිලි

දත්ත කට්ටලය විශාල නම්, OFFSET නිතර භාවිතා කිරීම විමසුම් කාර්ය සාධනය දැඩි ලෙස අඩු කරයි. උදාහරණයක් ලෙස, මිලියන ගණනක පේළි ඇති වගුවේ පසුපසින් දත්ත ලබා ගන්නේ නම්, දත්ත ගබඩාවට නියමිත OFFSET තෙක් සියලු පෙර පේළි පරික්ෂා කර යාමට සිදුවේ.

කාර්ය සාධන අඩු වීමේ උදාහරණය

ඔබ 1,000,000 වන පේළියෙන් ආරම්භ කර 10 රෙකෝඩ් ලබා ගන්නේ නම්, දත්ත ගබඩාවට පළමු 999,990 පේළි ඉවත් කර යාමට සිදුවේ. එබැවින්, OFFSET අගය වැඩි වීමත් සමඟ සැකසීමේ කාලය දිගු වේ.

ඉන්ඩෙක්ස් සමඟ කාර්ය සාධනය වැඩිදියුණු කිරීම

LIMIT සහ OFFSET භාවිතා කරන විට, නිසි ලෙස සැකසූ ඉන්ඩෙක්ස් සමහරවිට විමසුම් ක්‍රියාකාලය අඩු කරයි. විශේෂයෙන්, සෙවීමේ කොන්දේසි සඳහා ඉන්ඩෙක්ස් එකතු කිරීම දත්ත ගබඩාවට ඉලක්ක රෙකෝඩ් කාර්යක්ෂමව සොයා ගැනීමට පහසු කරයි.

4. කාර්යක්ෂම පිටුගත කිරීම සඳහා Seek ක්‍රමය

විශාල දත්ත කට්ටලයන් සමඟ කටයුතු කරන විට, OFFSET වෙනුවට “Seek Method” (keyset pagination ලෙසද හැඳින්වේ) භාවිතා කිරීම කාර්ය සාධනය දැඩි ලෙස වැඩිදියුණු කරයි. මෙම ක්‍රමය පෙර පිටුවේ අවසන් රෙකෝඩ් මත පදනම්ව ඊළඟ පිටුව ලබා ගනී, එවිට පේළි ඉවත් කිරීම අවශ්‍ය නොවේ. විශාල දත්ත කට්ටලයන් සඳහා මෙය විශේෂයෙන් ප්‍රයෝජනවත් වේ.

Seek ක්‍රමයේ උදාහරණය

Seek ක්‍රමයේ, OFFSET භාවිතා කිරීම වෙනුවට, පෙර පිටුවේ අවසන් id වැනි යතුරු අගයක් මත පදනම්ව රෙකෝඩ් ලබා ගනී. මෙය දත්ත ගබඩාවට ඉලක්ක රෙකෝඩ් සෘජුව ප්‍රවේශ වීමට ඉඩ සලසයි, එවිට පසුපස පිටු වෙත ගමන් කරන විට කාර්යක්ෂමතාව වැඩි වේ.

උදාහරණය

මෙම විමසුම මගින් පෙර පිටුවෙන් ලබාගත් අන්තිම id හි පදනම මත මීළඟ සටහන් කට්ටලය ලබාගනී.

SELECT * FROM table_name WHERE id > last_id_from_previous_page ORDER BY id ASC LIMIT 10;

මෙම ප්‍රවේශය භාවිතා කිරීමෙන්, එක් එක් විමසුම පෙර පිටුවේ අන්තිම සටහනෙන් ආරම්භ වන අතර, එයින් සැලකිය යුතු කාර්ය සාධනයේ වැඩිදියුණුවක් ලැබේ.

අනෙකුත් යතුරු භාවිතා කරමින් Seek ක්‍රමය

කිසියම් අවස්ථාවලදී, id හැර අනෙකුත් වර්ගයක කොලමක් භාවිතා කරමින් pagination සිදුකළ හැකිය, උදාහරණයක් ලෙස දිනයක කොලමක්. නිශ්චිත දිනයකින් පසුව සටහන් ලබාගැනීමෙන්, ඔබට පිටු හරහා සංක්‍රමණය කළ හැකිය සමාන ආකාරයෙන්. මෙය මූලික යතුර භාවිතා නොකරන විට පවා seek ක්‍රමය භාවිතා කිරීමට ඉඩ සලසයි.

5. LIMIT සහ OFFSET භාවිතා කිරීම සඳහා හොඳම පුරුදු

LIMIT සහ OFFSET කාර්යක්ෂමව භාවිතා කිරීම සඳහා, අනුගමනය කළ යුතු කිහිපයක් හොඳම පුරුදු තිබේ. පහත දැක්වෙන්නේ කාර්ය සාධනය උපරිම කිරීමට ඔබට උපකාරී වන ප්‍රධාන කරුණුයි.

අනුකරණ යෙදීම

LIMIT සහ OFFSET භාවිතා කිරීමේදී, ඔබේ සෙවුම් තත්ත්වයන්ට ගැලපෙන අනුකරණ සකස් කිරීමෙන් දත්ත සමුදාය සෙවීම් කාර්යක්ෂමව සිදුකළ හැකිය. විශේෂයෙන්ම, pagination සඳහා බහුලව භාවිතා වන කොලම්වලට අනුකරණ එකතු කිරීමෙන්, විශාල දත්ත කට්ටල සමග පවා වේගවත් දත්ත ලබාගැනීමට ඉඩ සලසයි.

මූලික යතුර ආශ්‍රිතයක් ලෙස භාවිතා කිරීම

Pagination සඳහා මූලික යතුර භාවිතා කිරීමෙන් අනුකරණ කාර්යක්ෂමතාව වැඩිදියුණු වේ. මෙය දත්ත සමුදායට විමසුම් වේගයෙන් සැකසීමට ඉඩ සලසයි.

Seek ක්‍රමය භාදාගැනීම

විශාල දත්ත කට්ටල සමග වැඩ කිරීමේදී, OFFSET වෙනුවට seek ක්‍රමය භාවිතා කිරීමෙන් පසුකාලීන පිටුවලදී පවා කාර්ය සාධනය පවත්වාගෙන යා හැකිය. මෙම ක්‍රමය විශාල දත්ත ප්‍රමාණයක් කළමනාකරණය සඳහා විශේෂයෙන් ඵලදායී වේ.

6. සාරාංශය

MySQL හි LIMIT සහ OFFSET දත්ත කාර්යක්ෂමව ලබාගැනීම සඳහා බලවත් මෙවලම් වේ. කෙසේ වෙතත්, දත්ත ප්‍රමාණය සහ ලබාගැනීමේ ක්‍රමය අනුව, කාර්ය සාධනයේ හීන වීමේ අවදානමක් තිබේ. අනුකරණ නිවැරදිව සකස් කිරීමෙන් සහ seek ක්‍රමය භාවිතා කිරීමෙන්, ඔබට කාර්යක්ෂම pagination ක්‍රියාත්මක කිරීමේදී කාර්ය සාධනය පවත්වාගත හැකිය. විශාල දත්ත කට්ටල කළමනාකරණයේදී, ඵලදායිතම ප්‍රතිඵල සඳහා seek ක්‍රමය භාදාගැනීම සලකා බලන්න.