ডাটাবেস বা API থেকে বড় পরিমাণের ডাটা ছোট ছোট টুকরো করে ইউজারকে দেখানোর প্রক্রিয়াকে Pagination (পেজিনেশন) বলা হয়। যখন আমাদের টেবিলে হাজার হাজার বা লাখ লাখ ডাটা থাকে, তখন একবারে সব ডাটা লোড না করে পেজ আকারে লোড করা হয়। সবচেয়ে জনপ্রিয় দুটি পেজিনেশন পদ্ধতি হলো Offset Pagination এবং Cursor Pagination । নিচে এ দুটি পদ্ধতির বিস্তারিত আলোচনা করা হলো: ১. Offset Pagination (অফসেট পেজিনেশন) এটি পেজিনেশনের সবচেয়ে সাধারণ এবং সহজ পদ্ধতি। আমরা সাধারণত ওয়েবসাইটে যে ১, ২, ৩, ৪ নম্বর পেজ বা "Next/Previous" বাটন দেখি, সেটি বেশিরভাগ সময় অফসেট পেজিনেশন দিয়েই করা হয়। এটি কীভাবে কাজ করে? এটি ডাটাবেসের LIMIT এবং OFFSET ক্লজ ব্যবহার করে কাজ করে। LIMIT: একটি পেজে কয়টি ডাটা দেখানো হবে (Page Size)। OFFSET: কয়টি ডাটা বাদ দিয়ে (Skip) পরের ডাটাগুলো নেওয়া শুরু হবে। উদাহরণ: ধরি, প্রতি পেজে আমরা ৫টি করে ডাটা দেখাতে চাই ( LIMIT = 5 )। Page 1: LIMIT 5 OFFSET 0 (প্রথম ৫টি ডাটা আসবে) Page 2: LIMIT 5 OFFSET 5 (প্রথম ৫টি বাদ দিয়ে ৬ থেকে ১০ নম্বর ডাটা আসবে) Page 3: LIMIT 5 OFFSET 10 (প্রথম ১০টি বাদ দি...
Array মূলত Contiguous Memory Location ব্যবহার করে data store করে। ইন্টারনাল প্রসেসিং স্টেপস: Base Address: Array যখন তৈরি হয়, তখন মেমোরিতে তার শুরুর লোকেশন বা Base Address (ধরি, 1000) ফিক্সড হয়। Element Size: Array-এর ডেটা টাইপ অনুযায়ী প্রতিটি এলিমেন্টের সাইজ ফিক্সড থাকে (যেমন, Integer হলে 4 Bytes)। Direct Formula: যখন আপনি Array[4] চান, তখন CPU মেমোরিতে কোনো লুপ চালায় না। সে সরাসরি এই সূত্রটি ব্যবহার করে: Target Address = Base Address + (Index * Element Size) উদাহরণ: মেমোরিতে Array-এর শুরু যদি হয় 1000 নম্বর ঘরে এবং প্রতিটি এলিমেন্ট যদি 4 Bytes জায়গা নেয়, তবে ৪ নম্বর ইনডেক্সের অ্যাড্রেস হবে: 1000 + (4 * 4) = 1016 । CPU সরাসরি 1016 নম্বর অ্যাড্রেসে জাম্প করে ভ্যালু নিয়ে আসে। কোনো সার্চ বা লুপ লাগে না বলেই এটি O(1) । Python Dynamic Array Python list (যা আসলে একটি Dynamic Array) এই সমস্যাটি সমাধান করে References বা Pointers-এর মাধ্যমে। Dynamic array কিভাবে Element size fix করবে? আমার array তে যদি digit, string থাকে তখন কিভাবে element size আসবে? ar...