- 1 1. හැඳින්වීම: MySQL OFFSET යනු කුමක්ද?
- 2 2. MySQL OFFSET Clause හි මූලික ව්යවස්ථාව සහ භාවිතය
- 3 3. OFFSET Clause හි ප්රායෝගික උදාහරණය: පිටුගැස්ම ක්රියාත්මක කිරීම
- 4 4. OFFSET Clause හි කාර්ය සාධන ගැටළු සහ අභියෝග
- 5 5. OFFSET Clause සඳහා විකල්ප ක්රම සහ සුදානම් තාක්ෂණ
- 6 6. OFFSET වාක්යය භාවිතා කිරීමේ දෝෂ සහ ඒවායේ විසඳුම්
- 7 7. සාරාංශය සහ නිර්දේශිත භාවිතය
1. හැඳින්වීම: MySQL OFFSET යනු කුමක්ද?
දත්ත ගබඩා සමඟ වැඩ කරන විට, ඔබට නියමිත පරාසයක දත්ත පමණක් ලබා ගැනීමට අවශ්ය වුණාද? උදාහරණයක් ලෙස, වෙබ් අඩවියක “ඊළඟ” සහ “පසුගිය” බොත්තම් භාවිතා කර පරිශීලකයන් සෙවුම් ප්රතිඵල අතර මාරු වීමට අවශ්ය වන විට, පිටුගැස්ම (දත්ත වෙන්ව පෙන්වීම) අවශ්ය වේ. මෙය සක්රිය කරන ලද විශේෂාංගය MySQL OFFSET clause වේ.
මෙම ලිපියේ, අපි MySQL OFFSET clause එක මූලික සංකල්ප වලින් පටන් ගනිමින් උසස් භාවිතය දක්වා පැහැදිලි කර, කාර්යක්ෂම දත්ත ලබා ගැනීමේ තාක්ෂණයන් හඳුන්වා දෙනු ඇත.
2. MySQL OFFSET Clause හි මූලික ව්යවස්ථාව සහ භාවිතය
මූලික ව්යවස්ථාව සහ භාවිතය
OFFSET clause එක LIMIT clause සමඟ එකට භාවිතා කරයි, එය දත්ත ගබඩාවෙන් ලබා ගත යුතු පේළි ගණන නියම කරයි.
මෙන්න මූලික ව්යවස්ථාව:
SELECT column_name FROM table_name LIMIT row_count OFFSET starting_position;
උදාහරණය:
SELECT * FROM users LIMIT 10 OFFSET 20;
මෙම විමසුම 21 වන පේළියෙන් ආරම්භ වන 10 ලේඛන “users” වගුවෙන් ලබා ගනී.
LIMIT Clause සමඟ එකතු කිරීමේ ක්රමය
OFFSET clause එක සෑම විටම LIMIT clause සමඟ එකට භාවිතා කළ යුතුය. LIMIT එක ලබා දිය යුතු ලේඛන ගණන නියම කරයි, එසේම OFFSET එක පසුබැසිය යුතු පේළි ගණන නියම කරයි. මෙම එකතුව ඔබට දත්ත කාර්යක්ෂමව වෙන් කර ලබා ගැනීමට ඉඩ සලසයි.
උදාහරණය:
SELECT * FROM orders ORDER BY order_date DESC LIMIT 5 OFFSET 10;
මෙම විමසුම 11 වන නවතම ඇණවුමෙන් ආරම්භ වන 5 ලේඛන ලබා ගනී.
ඉහත පෙන්වා ඇති පරිදි, OFFSET clause එක දත්ත ලබා ගැනීමේ පරාසය සවිස්තරාත්මකව පාලනය කිරීමේ පහසුකමක් වේ.

3. OFFSET Clause හි ප්රායෝගික උදාහරණය: පිටුගැස්ම ක්රියාත්මක කිරීම
සරල පිටුගැස්ම විමසුම් උදාහරණ
පිටුගැස්ම යනු දත්ත පිටු වලට වෙන් කර පෙන්වීමේ ක්රමයකි. MySQL OFFSET clause එක මෙම කාර්යය ක්රියාත්මක කිරීමට සුදුසුම වේ.
උදාහරණය: එක් පිටුවකට 10 ලේඛන පෙන්වීමට SQL විමසුම්
-- Page 1
SELECT * FROM products LIMIT 10 OFFSET 0;
-- Page 2
SELECT * FROM products LIMIT 10 OFFSET 10;
-- Page 3
SELECT * FROM products LIMIT 10 OFFSET 20;
OFFSET අගය “පිටු අංකය × පිටුවකට ලේඛන ගණන” ලෙස සකස් කිරීමෙන්, ඔබට දත්ත පහසුවෙන් පිටු වලට වෙන් කළ හැක.
වාස්තුක වෙබ් යෙදුම් භාවිතය සඳහා ප්රධාන කරුණු
පිටුගැස්ම වෙබ් යෙදුම් සංවර්ධනයේ නිතර භාවිතා වේ. පහත PHP භාවිතා කරන උදාහරණයක් ඇත.
<?php
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$limit = 10;
$offset = ($page - 1) * $limit;
$query = "SELECT * FROM products LIMIT $limit OFFSET $offset";
$result = mysqli_query($connection, $query);
?>
පරිශීලකයා විසින් නියම කරන පිටු අංකය අනුව OFFSET අගය ගතිකව සකස් කිරීමෙන්, ඔබට සවිස්තරාත්මක පිටුගැස්ම කාර්ය සාධනයක් ක්රියාත්මක කළ හැක.
4. OFFSET Clause හි කාර්ය සාධන ගැටළු සහ අභියෝග
විශාල දත්ත කට්ටල සමඟ කාර්ය සාධන අඩු වීම
OFFSET clause භාවිතා කරන විට, පසුබැසීම් පේළි ගණන වැඩි වීමත් සමඟ කාර්ය සාධනය අඩුවේ.
උදාහරණයක් ලෙස, 100,000 ලේඛන අතරින් 99,991 වන පේළියෙන් ආරම්භ වන 10 ලේඛන ලබා ගතහොත්, MySQL විසින් ප්රතිඵල ලබා දීමට පෙර 99,990 පේළි පරික්ෂා කළ යුතුය. මෙම ක්රියාවලියට වැදගත් කාලයක් ගත විය හැක.
උදාහරණය: ගැටළුවක් ඇති විමසුම
SELECT * FROM users LIMIT 10 OFFSET 99990;
විමසුම් සුදානම අවශ්ය වීමේ හේතු
ලේඛන ගණන වැඩි වීමත් සමඟ OFFSET පරික්ෂණයෙන් සිදුවන මන්දගාමීත්වය වැඩි දක්නට ලැබේ. එබැවින්, කාර්ය සාධන සුදානම අත්යවශ්ය වේ. ඊළඟ කොටසේ, අපි වඩා කාර්යක්ෂම විකල්ප ක්රම හඳුන්වා දෙනු ඇත.
5. OFFSET Clause සඳහා විකල්ප ක්රම සහ සුදානම් තාක්ෂණ
Seek ක්රමය භාවිතා කිරීම
විශාල දත්ත කට්ටල සමඟ කටයුතු කරන විට, Seek ක්රමය භාවිතා කිරීම කාර්ය සාධනය ගණනාවක් වැඩි කරයි.
උදාහරණය: OFFSET භාවිතා නොකර විමසුම
SELECT * FROM products WHERE id > 100 ORDER BY id LIMIT 10;
මෙම විමසුමේ, අවසන් ලබාගත් ID එක සුරකිමින්, ඊළඟ දත්ත කට්ටලය එම ID මත පදනම්ව ලබා ගනී. මෙම ක්රමය ඉන්ඩෙක්ස් භාවිතා කරන බැවින්, විශාල දත්ත කට්ටල ඉතා වේගයෙන් සැකසිය හැක.
දර්ශක සුදානම
ඇතුළත් කරන දර්ශක වගුවකට එක් කිරීම සෙවීමේ කාර්ය සාධනය විශාල ලෙස වැඩි කරයි.
උදාහරණය: දර්ශකයක් නිර්මාණය කිරීම
CREATE INDEX idx_product_id ON products(id);
මෙම ආකාරයෙන් සුදුසු දර්ශක නිර්මාණය කිරීමෙන්, OFFSET වාක්යය භාවිතා නොකරත් කාර්යක්ෂම දත්ත ලබා ගැනීම සම්භව වේ.

6. OFFSET වාක්යය භාවිතා කිරීමේ දෝෂ සහ ඒවායේ විසඳුම්
පොදු දෝෂ උදාහරණ සහ ප්රතිකාර
දෝෂ උදාහරණය 1: LIMIT හෝ OFFSET සඳහා ඍණ අගයක් නියම කිරීම
SELECT * FROM users LIMIT -10 OFFSET 5;
දෝෂය: LIMIT හෝ OFFSET සඳහා ඍණ අගයන් නියම කළ නොහැක.
විසඳුම:
සෑම විටම ධනාත්මක පූර්ණ සංඛ්යා අග නියම කර, යෙදුම් පාර්ශ්වයේ (උදාහරණයක් ලෙස PHP) ආදාන වලංගුකරණය සිදු කරන්න.
දෝෂ උදාහරණය 2: OFFSET පරාසයෙන් පිටත
මුළු ලේඛන ගණනට වඩා වැඩි OFFSET අගයක් නියම කරන්නේ නම්, ප්රතිඵල හිස් විය හැක. එවැනි අවස්ථාවල, විමසුම් කොන්දේසි පෙර පරීක්ෂා කිරීම අවශ්ය වේ.
7. සාරාංශය සහ නිර්දේශිත භාවිතය
ප්රධාන ග්රහණයන්
මෙම ලිපියේ, MySQL OFFSET වාක්යය පිළිබඳ පහත සඳහන් කරුණු විස්තරාත්මකව සලකා බැලුවෙමු:
ප්රධාන කරුණු සමාලෝචනය:
- මූලික ව්යවස්ථාව: LIMIT සහ OFFSET එකට එකතු කර, නියමිත පරාසයකින් දත්ත ලබා ගැනීම.
- ප්රායෝගික යෙදුම්: පිටුගත කිරීම, ශ්රේණිගත ප්රදර්ශන, ලොග් ලබා ගැනීම සහ අනෙකුත් කාර්යයන් සඳහා ප්රයෝජනවත්.
- කාර්ය සාධන අභියෝග: විශාල දත්ත කට්ටල සමඟ, පරික්ෂණය මන්දගාමී විය හැකි අතර, සුදානම අවශ්ය වේ.
- විකල්ප ක්රම: Seek ක්රමය සහ සුදුසු දර්ශක භාවිතයෙන් වේගවත් සැකසීමක් ලබා ගත හැක.
- දෝෂ නිරාකරණය: ඍණ අගයන් හෝ අවලංගු විමසුම් කොන්දේසි වලක්වා ගැනීමට වලංගුකරණය ක්රියාත්මක කරන්න.


