MySQL में LIMIT और OFFSET
LIMIT और OFFSET
LIMIT returned rows cap और OFFSET ordered result से rows skip करता है। Preview, top-N और pagination में useful हैं, पर correctness deterministic ORDER BY से शुरू होती है।
students में Aarav (X-A, 86.50, Active), Meera (X-A, 91.00, Active), Kabir (X-B, 74.00, Inactive) और Sana (X-B, 88.50, Active) हैं।SELECT student_id, full_name, marks
FROM students
ORDER BY marks DESC, student_id ASC
LIMIT 2;MySQL Syntax Forms
LIMIT row_count
LIMIT row_count OFFSET offset
LIMIT offset, row_countLIMIT 10 OFFSET 20 और LIMIT 20, 10 समान हैं। Teaching और maintainable code में keyword form prefer करें।Page Calculation
Page size 2 में page 1 offset 0, page 2 offset 2 और page 3 offset 4:
offset = (page_number - 1) * page_sizeSELECT student_id, full_name, marks
FROM students
ORDER BY marks DESC, student_id ASC
LIMIT 2 OFFSET 2;Page positive integer validate करें, page_size cap करें और driver support अनुसार numeric values bind करें।
Deterministic Ordering
ORDER BY बिना execution changes rows को pages के बीच move कर सकते हैं। Marks tie हों तो marks DESC incomplete है। Unique final key जोड़ें:
ORDER BY marks DESC, student_id ASCPage requests के बीच data change होने पर offset pages duplicate/missing rows दे सकते हैं। Application need के अनुसार consistency चुनें।
Large OFFSET और Keyset Pagination
Deep offset earlier rows scan/discard कर सकता है। student_id ordered “next” feed में:
SELECT student_id, full_name
FROM students
WHERE student_id > ?
ORDER BY student_id ASC
LIMIT 20;Previous page की last ID bind करें। Multi-column order में complete tuple seek condition चाहिए। Keyset sequential navigation में fast/stable है, arbitrary page jump natural नहीं।
गलतियाँ और अभ्यास
- ORDER BY बिना LIMIT।
- Comma arguments उलटना।
- Maximum page size न रखना।
- Ties ignore करना।
- Endless feed में huge OFFSET।
- Top three marks deterministic लौटाएँ।
- Size 2 की page 2 लिखें।
- ID-based next page को keyset में लिखें।
- New inserts offset pages क्यों shift करते हैं बताएँ।
त्वरित सारांश
- LIMIT rows cap और OFFSET ordered rows skip करता है।
- ORDER BY plus unique tie-breaker लें।
- Pagination inputs validate और cap करें।
- Sequential navigation में keyset large-offset cost बचाता है।
Official संदर्भ
References 14 August 2026 को review किए गए।