পৃষ্ঠাগুলিযুক্ত অনুসন্ধান ফলাফলগুলির ক্যাশিংয়ের জন্য সর্বোত্তম অনুশীলন কোনটি যার ক্রম / বৈশিষ্ট্যগুলি পরিবর্তন করা যেতে পারে?
বলুন, আমার আবেদনে, কেউ সর্বশেষ 20 টি আলোচনার থ্রেড দেখতে চায় (10,000 এর মধ্যে)। servletএক্সএমএল / জেএসএন হিসাবে আলোচনার থ্রেড টেবিল থেকে প্রথম 20 টি রেকর্ড আনার জন্য , মাধ্যমে একটি ডাটাবেসটিতে একটি অনুরোধ প্রেরণ করা হবে । যদি তারা পরবর্তী ২০ টি দেখতে চান তবে তারা ফলাফলের পরবর্তী পৃষ্ঠায় চলে যান এবং পরবর্তী লটটি (সীমা এবং অফসেট = 20 ইত্যাদি) পাওয়ার জন্য অন্য একটি অনুরোধ বন্ধ করে দেয়।
সার্ভার লোড এবং ক্লায়েন্ট-অপেক্ষাকে হ্রাস করতে, আমি ফলাফলের পূর্ববর্তী পৃষ্ঠাগুলি ক্যাশে করতে চাই। তবে আমার দুটি প্রশ্ন রয়েছে:
- ফলাফলগুলিতে প্রদর্শিত টেবিলটি একাধিক বৈশিষ্ট্য দ্বারা অর্ডার করা যেতে পারে (যেমন, থ্রেড-তৈরি-তারিখ, থ্রেড-লেখক, শেষ-পোস্টের তারিখ) can এর অর্থ হ'ল 'প্রথম ২০ টি ফলাফল' এর মতো একটি বিবৃতি প্রসঙ্গে ছাড়া কোনও অর্থবোধ করে না (অর্থাত্, আমরা কী দিয়ে আদেশ করছি)। এরপরে সামনের প্রান্তটি কীভাবে ব্যাক-এন্ডে এটি ইতিমধ্যে লোড হয়ে গেছে তা যোগাযোগ করবে? আমার প্রথম চিন্তা ছিল প্রতিটি ফলাফলের জন্য আইডি ব্যবহার করা কিন্তু পরবর্তী অনুরোধগুলিতে এগুলি আবার সার্ভারে প্রেরণ করা (এবং তাদের ভিত্তিতে ফলাফলগুলি ফিল্টার করা) ঠিক ততটাই সময়সাপেক্ষ যা সবকিছু অন্ধভাবে ফিরিয়ে পাঠানো। কিভাবে আমি এটি করতে পারব?
- যদি পূর্ববর্তী ফলাফলের একটি বৈশিষ্ট্য (যেমন, সর্বাধিক সাম্প্রতিক-পরবর্তী তারিখ) পরিবর্তিত হয় তবে কী হবে? তারপরে আমাদের প্রতিটি ফলাফল যাচাই করার একটি উপায় প্রয়োজন যা এটি পৃষ্ঠাভুক্ত হওয়ার পরে এটি সার্ভার-সাইডে সংশোধিত হয়েছে কিনা। আমি কীভাবে এটি করতে পারি?