লক্ষ লক্ষ রেকর্ড সহ এসকিউএলাইটে দক্ষ পেজিং


102

আমাকে এসকিউএলাইটের ফলাফলগুলি একটি তালিকার দৃশ্যে দেখাতে হবে। অবশ্যই, আমি ফলাফল পৃষ্ঠা করা প্রয়োজন।

প্রথম বিকল্পটি হল লিমিটের ধারাটি ব্যবহার করা use উদাহরণ স্বরূপ:

SELECT * FROM Table LIMIT 100, 5000

এটি রেকর্ড 5001 থেকে 5100 এ দেয় The

রেকর্ড প্রচুর আছে যখন পেজিং জন্য সেরা পদ্ধতির কি?

উত্তর:


120

দয়া করে মনে রাখবেন যে আপনাকে সর্বদা একটি ORDER BYধারা ব্যবহার করতে হবে ; অন্যথায়, আদেশ স্বেচ্ছাসেবক হয়।

দক্ষ পেজিং করার জন্য, অর্ডার করা ক্ষেত্রের গুলি / ক্ষেত্রগুলির প্রথম / শেষ প্রদর্শিত মানগুলি সংরক্ষণ করুন এবং পরের পৃষ্ঠাটি প্রদর্শন করার সময় তাদের ঠিক পরে চালিয়ে যান:

SELECT *
FROM MyTable
WHERE SomeColumn > LastValue
ORDER BY SomeColumn
LIMIT 100;

(এটি এসকিউএল উইকিতে আরও বিশদ সহ ব্যাখ্যা করা হয়েছে ))

যখন আপনার একাধিক সাজানোর কলাম রয়েছে (এবং এসকিউএলাইট 3.15 বা তারপরে), আপনি এর জন্য একটি সারি মানের তুলনা ব্যবহার করতে পারেন :

SELECT *
FROM MyTable
WHERE (SomeColumn, OtherColumn) > (LastSome, LastOther)
ORDER BY SomeColumn, OtherColumn
LIMIT 100;

8
এমন কোনও ক্ষেত্রে কী কী যেখানে আপনার সামার কলামে 101 টি অভিন্ন মান রয়েছে? এটি আরও ভাল বলে মনে হচ্ছে: blog.ssokolow.com/archives/2009/12/23/…
জ্যাসেক ryawrynavicz

6
@ JacekŁawrynowicz যদি বাছাইকরণ কলামটি অনন্য না হয়, আপনাকে আরও কলাম দ্বারা বাছাই করতে হবে। যাইহোক, আপনার যদি বিকল্প উত্তর থাকে তবে একটি উত্তর তৈরি করুন।
সিএল

@ সিএল যদি আমি একাধিক ও শর্তাদি কীভাবে করতে হয় তার প্রশ্নে যোগদান করতে চাইলে
ওয়াইএলএস

@YLS আজকাল, আপনি সারি মান ব্যবহার করতে পারেন।
সিএল

4
এই পদ্ধতির ব্যবহারে সমস্যাটি এই মন্তব্যের
mr5
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.