আইডির একটি বড় তালিকা পুনরুদ্ধার করতে আমার একটি ক্যোয়ারী লিখতে হবে।
আমরা অনেকগুলি ব্যাকেন্ডে (মাইএসকিউএল, ফায়ারবার্ড, এসকিউএল সার্ভার, ওরাকল, পোস্টগ্রিএসকিউএল ...) সমর্থন করি যাতে আমার একটি স্ট্যান্ডার্ড এসকিউএল লিখতে হবে।
আইডি সেটের আকারটি বড় হতে পারে, কোয়েরিটি প্রোগ্রামিকভাবে উত্পন্ন হবে। সুতরাং, সেরা পদ্ধতির কি?
1) IN ব্যবহার করে একটি কোয়েরি লেখা
SELECT * FROM TABLE WHERE ID IN (id1, id2, ..., idn)
আমার প্রশ্ন এখানে। এন খুব বড় হলে কী হবে? এছাড়াও, অভিনয় সম্পর্কে কি?
2) ওআর ব্যবহার করে একটি কোয়েরি লেখা
SELECT * FROM TABLE WHERE ID = id1 OR ID = id2 OR ... OR ID = idn
আমি মনে করি যে এই পদ্ধতির এন সীমা নেই, তবে এন খুব বড় হলে পারফরম্যান্সের কী হবে?
3) একটি প্রোগ্রামেটিক সমাধান রচনা:
foreach (var id in myIdList)
{
var item = GetItemByQuery("SELECT * FROM TABLE WHERE ID = " + id);
myObjectList.Add(item);
}
নেটওয়ার্কে ডেটাবেস সার্ভারটি জিজ্ঞাসা করা হলে আমরা এই পদ্ধতির সাথে কিছু সমস্যা অনুভব করেছি। সাধারণত এমন একটি কোয়েরি করা ভাল যা প্রচুর ছোট প্রশ্ন তৈরির বিপরীতে সমস্ত ফলাফল পুনরুদ্ধার করে। হয়তো আমি ভুল.
এই সমস্যার সঠিক সমাধান কী হবে?
IN
! আমি আপনার সমাধান 1 + 3 হিসাবে করেছি did ঠিক চূড়ান্ত ক্যোয়ারীটি ছিল একটি, দীর্ঘ জিজ্ঞাসার স্ট্রিংটি কার্যকর করার জন্য এসকিউএলকে প্রেরণ করা হয়েছিল।