Pagination হল একটি প্রক্রিয়া, যা ডেটাবেস থেকে বড় আকারের ডেটা সেটগুলি কার্যকরভাবে প্রদর্শন করতে ব্যবহৃত হয়। PostgreSQL এ LIMIT এবং OFFSET কুয়েরি ক্লজগুলি ব্যবহার করে আপনি ডেটাকে পৃষ্ঠা অনুসারে ভাগ করতে পারেন, অর্থাৎ নির্দিষ্ট সংখ্যক রেকর্ড একসাথে দেখাতে পারেন।
১. LIMIT এবং OFFSET এর ব্যাখ্যা
- LIMIT: এটি কুয়েরির ফলাফল থেকে কতটি রেকর্ড ফেরত দিতে হবে তা সীমিত করে।
- OFFSET: এটি কুয়েরির ফলাফল থেকে কতটি রেকর্ড বাদ দিতে হবে তা নির্ধারণ করে। সাধারণত পেজিনেশন সিস্টেমে এটি পরবর্তী পৃষ্ঠার জন্য ব্যবহৃত হয়।
২. LIMIT এবং OFFSET এর সেন্ট্যাক্স
SELECT columns
FROM table_name
ORDER BY column_name
LIMIT number_of_rows
OFFSET number_of_rows_to_skip;
- columns: আপনি যে কলামগুলো দেখতে চান তা নির্বাচন করুন।
- table_name: টেবিলের নাম যেখানে থেকে ডেটা নিয়ে আসা হবে।
- ORDER BY: ডেটা সঠিকভাবে সাজানোর জন্য এটি ব্যবহার করা হয় (সাধারণত প্রয়োজনীয়, যাতে আপনি সঠিক পৃষ্ঠা দেখাতে পারেন)।
- LIMIT: প্রদর্শিত হওয়া রেকর্ডের সংখ্যা।
- OFFSET: কতগুলি রেকর্ড প্রথমে বাদ দেওয়া হবে।
৩. Pagination Query উদাহরণ
উদাহরণ ১: প্রথম পৃষ্ঠা (প্রথম ৫টি রেকর্ড)
যদি আপনার employees টেবিল থাকে এবং আপনি প্রথম ৫টি রেকর্ড দেখতে চান, তবে কুয়েরি হবে:
SELECT * FROM employees
ORDER BY employee_id
LIMIT 5;
এটি employees টেবিল থেকে প্রথম ৫টি রেকর্ড ফেরত দেবে।
উদাহরণ ২: দ্বিতীয় পৃষ্ঠা (পরবর্তী ৫টি রেকর্ড)
যদি আপনি দ্বিতীয় পৃষ্ঠা দেখতে চান, যেখানে পরবর্তী ৫টি রেকর্ড থাকবে, তাহলে আপনাকে OFFSET ব্যবহার করতে হবে:
SELECT * FROM employees
ORDER BY employee_id
LIMIT 5 OFFSET 5;
এটি প্রথম ৫টি রেকর্ড বাদ দিয়ে পরবর্তী ৫টি রেকর্ড দেখাবে। (যেমন, employee_id 6 থেকে 10 পর্যন্ত)
উদাহরণ ৩: তৃতীয় পৃষ্ঠা (এখন পর্যন্ত ১০টি রেকর্ড বাদ দিয়ে পরবর্তী ৫টি রেকর্ড)
SELECT * FROM employees
ORDER BY employee_id
LIMIT 5 OFFSET 10;
এটি প্রথম ১০টি রেকর্ড বাদ দিয়ে পরবর্তী ৫টি রেকর্ড (যেমন, employee_id 11 থেকে 15) দেখাবে।
৪. প্রথম পৃষ্ঠা থেকে শেষ পৃষ্ঠা পর্যন্ত পেজিনেশন
ধরা যাক, আপনি একটি পেজিনেশন সিস্টেম তৈরি করছেন, যেখানে আপনার ১০০০টি রেকর্ড রয়েছে এবং প্রতি পৃষ্ঠায় ১০টি রেকর্ড দেখাতে চান। তাহলে আপনি LIMIT 10 এবং OFFSET ব্যবহার করে সমস্ত পৃষ্ঠা দেখতে পারবেন।
প্রথম পৃষ্ঠা:
SELECT * FROM employees ORDER BY employee_id LIMIT 10 OFFSET 0;দ্বিতীয় পৃষ্ঠা:
SELECT * FROM employees ORDER BY employee_id LIMIT 10 OFFSET 10;তৃতীয় পৃষ্ঠা:
SELECT * FROM employees ORDER BY employee_id LIMIT 10 OFFSET 20;
এভাবে, LIMIT এবং OFFSET কুয়েরি ব্যবহার করে আপনি পৃষ্ঠার মধ্যে পৃষ্ঠা পরিবর্তন করতে পারবেন।
৫. Pagination সিস্টেমের জন্য কুয়েরি অপটিমাইজেশন
যেহেতু পেজিনেশন ব্যবহৃত হয় সাধারণত বড় ডেটাসেটের ক্ষেত্রে, তাই পারফরম্যান্স অপটিমাইজেশনের জন্য কিছু টিপস:
- ORDER BY: সবসময়
ORDER BYব্যবহার করুন, অন্যথায় OFFSET যথাযথভাবে কাজ নাও করতে পারে। - ইনডেক্সিং:
ORDER BYকলামগুলোর উপর ইনডেক্স তৈরি করুন যাতে ডেটা দ্রুত বের করা যায়। - বড় OFFSET: যদি OFFSET এর সংখ্যা খুব বড় হয়, তবে এটি ডেটাবেসের জন্য ধীর হতে পারে। এক্ষেত্রে keyset pagination (যেমন,
WHERE id > previous_id) ব্যবহার করা ভাল।
সারাংশ
PostgreSQL এ LIMIT এবং OFFSET কুয়েরি ক্লজ ব্যবহার করে আপনি ডেটা পেজিনেশন করতে পারেন, যার মাধ্যমে বড় ডেটাবেস সিস্টেমে সহজে এবং দ্রুত ডেটা প্রদর্শন করা যায়। এটি সাধারণত ওয়েব অ্যাপ্লিকেশন বা মোবাইল অ্যাপ্লিকেশনে ব্যবহৃত হয়, যেখানে ডেটার অনেক পৃষ্ঠা থাকতে পারে।
Read more