MongoDB-এ বাল্ক ইনসার্ট এবং ইন্ডেক্সিং দিয়ে পারফরম্যান্স অপ্টিমাইজেশন
MongoDB-এ একসাথে অনেক ডকুমেন্ট ইনসার্ট করতে insertMany() ব্যবহার করা সবচেয়ে দ্রুত এবং কার্যকর। আপডেট পারফরম্যান্স বেড়াতে সংশ্লিষ্ট ফিল্ডে ইন্ডেক্স তৈরি করা প্রয়োজন।
১. insertMany() ব্যবহার করে একসাথে একাধিক ডকুমেন্ট ইনসার্ট
> db.demo325.insertMany([
{ _id: 101, Name: "Chris", Age: 23 },
{ _id: 102, Name: "David", Age: 24 },
{ _id: 103, Name: "Bob", Age: 22 }
]);
{ "acknowledged" : true, "insertedIds" : [ 101, 102, 103 ] }
সুবিধা: একক নেটওয়ার্ক রাউন্ড-ট্রিপে হাজার হাজার ডকুমেন্ট ইনসার্ট হয়। প্রতিটি insertOne() কল করার চেয়ে অনেক দ্রুত।
২. ডকুমেন্টগুলো দেখানো
> db.demo325.find().pretty();
আউটপুট:
{ "_id" : 101, "Name" : "Chris", "Age" : 23 }
{ "_id" : 102, "Name" : "David", "Age" : 24 }
{ "_id" : 103, "Name" : "Bob", "Age" : 22 }
৩. ensureIndex() (বা createIndex()) দিয়ে Name ফিল্ডে ইন্ডেক্স তৈরি
> db.demo325.ensureIndex({Name: 1});
আউটপুট:
{ "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
ইন্ডেক্সের গুরুত্ব:
- ইন্ডেক্স ছাড়া
find({Name: "David"})করলে COLLSCAN (ফুল কালেকশন স্ক্যান) হয়, যা ধীর। - ইন্ডেক্স থাকলে
IXSCAN(ইন্ডেক্স স্ক্যান) হয়, যা খুব দ্রুত। {Name: 1}এসেন্ডিং অর্ডারে ইন্ডেক্স।-1ডেসেন্ডিং।- আপডেট/ডিলিট কোয়েরিও ফিল্টারের ইন্ডেক্স থাকলে দ্রুত হয়।
সেরা প্র্যাকটিস: কোয়েরি প্যাটার্ন অনুযায়ী কম্পাউন্ড ইন্ডেক্স (Compound Index) তৈরি করুন।