কম্পিউটার টিউটোরিয়াল

উন্নত MongoDB অপ্টিমাইজেশন: পার্ট ২

মূলত Tricore দ্বারা প্রকাশিত: ২৪ আগস্ট, ২০১৭

এই সিরিজের পার্ট ১-এ আমরা MongoDB ব্যবহারের কিছু টিপ শেয়ার করেছিলাম। পার্ট ২-এ আমরা আরও কিছু MongoDB টপিক কভার করব, যার মধ্যে রয়েছে অপ্টিমাইজেশন, পারফরম্যান্স, স্পিড, ইন্ডেক্সিং, স্কিমা ডিজাইন এবং ডেটা সেফটি।

টিপ ১: ডেভেলপমেন্টে --notablescan অপশন ব্যবহার শিখুন (প্রোডাকশনে নয়)

উন্নত MongoDB অপ্টিমাইজেশন: পার্ট ২

সোর্স: www.percona.com

MongoDB-এ একটি --notablescan অপশন আছে যা তখন এরর রিটার্ন করে যখন একটি কোয়ারি ফুল টেবিল স্ক্যান করতে হয়। এই অপশন ডেভেলপমেন্ট এনভায়রনমেন্টে কাজে আসতে পারে যদি আপনি নিশ্চিত করতে চান যে আপনার সব কোয়ারি ইন্ডেক্স হিট করছে। কিন্তু আমরা প্রোডাকশন এনভায়রনমেন্টে এটি ব্যবহার করার পরামর্শ দিই না কারণ এটি পারফরম্যান্স সমস্যা তৈরি করতে পারে। সমস্যা হচ্ছে অনেক সিম্পল অ্যাডমিনিস্ট্রেটিভ টাস্ক ফুল টেবিল স্ক্যানের প্রয়োজন হয়। এই অপশন আপনাকে আপনার ডেটাবেসের সেই কালেকশনগুলোর তালিকা দেখতে দেয় যেগুলোকে ফুল টেবিল স্ক্যানের প্রয়োজন।

টিপ ২: একটি শেল থেকে সব সার্ভার এবং ডেটাবেস পরিচালনা করুন

ডিফল্টভাবে MongoDB localhost: 27017-এ কানেক্ট করে। আপনি স্টার্টআপে mongo host: port/database চালিয়ে যেকোনো সার্ভারে কানেক্ট করতে পারেন। আপনি শেলের ভিতর থেকে একাধিক সার্ভার বা ডেটাবেসেও কানেক্ট করতে পারেন।

উদাহরণস্বরূপ, ধরা যাক у আমাদের একটি অ্যাপ্লিকেশন আছে যা একই সাথে একটি ডিলারের ডেটাবেস এবং একটি ডিস্ট্রিবিউটারের ডেটাবেস ব্যবহার করে। MongoDB-এ আমরা একই শেলের ভিতর থেকে এই দুটি ডেটাবেসের মধ্যে স্যুইচ করতে পারি।

টিপ ৩: JavaScript জানুন

যখন আপনি এমন একটি ল্যাঙ্গুয়েজ ব্যবহার করছেন যার নিজস্ব একটি দুর্দান্ত শেল রয়েছে, তবে আপনার JavaScript® জানা উচিত। MongoDB ব্যবহারকারীদের মধ্যে JavaScript ভাষা phổিপুলার কারণ এটি তথ্য অ্যাক্সেস করার সবচেয়ে দ্রুত এবং সেরা উপায়। JavaScript একটি খুব লচাইল এবং শক্তিশালী ভাষা যার দুর্দান্ত ফিচারগুলো শেল থেকে সর্বোচ্চ আউটপুট পেতে সাহায্য করবে।

টিপ ৪: সার্ভারগুলোর ইনস্ট্যান্ট-ইন-টাইম ব্যাকআপ নিন

জার্নালিং সক্রিয় থাকা একটি ডেটাবেসের ব্যাকআপ নতে, আপনি হয় ফাইল সিস্টেম স্ন্যাপশট নিতে পারেন বা নরমল fsync+lock করে তারপর ডাম্প নিতে পারেন। মনে রাখবেন যে আপনি শুধু fsync এবং লক ছাড়া সব ফাইল কপি করে নিতে পারবেন না, কারণ কপি করা একটি ইনস্ট্যান্টিওস অপারেশন নয়। যদি জার্নাল ফাইলগুলোর কপি এবং ব্যাকআপ ভিন্ন ভলিউমে থাকে, তবে পরবর্তী সময়ে ব্যাকআপগুলাใช้াহীন হতে পারে।

টিপ ৫: একটি কোয়ারি থেকে ডেটা ফেচ করার চেষ্টা করুন

অ্যাপ্লিকেশন ইউনিট টার্মটি কিছু টাইপের অ্যাপ্লিকেশন কাজের জন্য ব্যবহৃত হয়। একটি অ্যাপ্লিকেশন ইউনিট মূলত আপনার অ্যাপ্লিকেশনের একটি বিচ্ছিন্ন কাজের একক যা ডেটাবেস অ্যাক্সেস জড়িত হতে পারে। আপনার MongoDB স্কিমা ডিজাইন করা উচিত প্রতি অ্যাপ্লিকেশন ইউনিটে এক কোয়ারি করার জন্য।

যদি আপনার একটি ওয়েব বা মোবাইল অ্যাপ্লিকেশন থাকে, তবে আপনি একটি অ্যাপ্লিকেশন ইউনিটকে ব্যাকএন্ডে একটি রিকোয়ারেস্ট হিসেবে চিন্তা করতে পারেন।

এখানে কিছু অন্যান্য উদাহরণ:

  • একটি ডেস্কটপ অ্যাপ্লিকেশনের জন্য, একটি অ্যাপ্লিকেশন ইউনিট ইউজার-ক্লায়েন্ট ইন্টারঅ্যাকশনকে বোঝাতে পারে।

  • একটি অ্যানালিটিক্স সিস্টেমের জন্য, একটি অ্যাপ্লিকেশন ইউনিট একটি ড্যাশবোর্ড লোডকে বোঝাতে পারে।

উপসংহার

MongoDB একটি দ্রুত, রোবাস্ট এবং অত্যন্ত স্কেলেবল ডেটাবেস। এটি অনেক প্ল্যাটফর্মে কাজ করে এবং অপ্টিমাল ব্যবহার کے জন্য অনেক ল্যাঙ্গুয়েজ ড্রাইভার রয়েছে।

MongoDB প্রতিদিন আরও জনপ্রিয় হচ্ছে। MongoDB-এর বেসিক বুঝতে এবং কীভাবে ভালোভাবে ব্যবহার করতে হয় সেটা জানা যেকোনো ডেভেলপারের জন্য একটি দুর্দান্ত اقدام।

আপনি কি MongoDB ব্যবহার শিখছেন? ফিডব্যাক ট্যাব ব্যবহার করে আপনার অভিজ্ঞতা আমাদের সাথে শেয়ার করুন।

  1. Docker কন্টেইনারে MongoDB ডিপ্লয়: ধাপে ধাপে গাইড

  2. MongoDB Compass আবিষ্কার করুন: সিমলেস ডেটা ম্যানেজমেন্টের জন্য আপনার ভিজ্যুয়াল টুল

  3. মঙ্গোডিবিতে কোড ইনজেকশন আটাক রোধ: একটি ডেভেলপার গাইড

  4. MongoDB-এ অনব্যবহৃত ইনডেক্স শনাক্ত করা: সর্বোত্তম পারফরম্যান্সের জন্য