এই পৃষ্ঠায় সবচেয়ে প্রচলিত কিছু পরিস্থিতিতে বিলিং ইউনিট কীভাবে গণনা করা হয় তার উদাহরণ দেওয়া হয়েছে। উল্লেখ্য যে, কোয়েরি প্ল্যান, ডেটার গঠন এবং উপলব্ধ ইনডেক্সের মতো বিভিন্ন বিষয়ের উপর ভিত্তি করে প্রতিটি কোয়েরির প্রক্রিয়াকৃত ডেটা ভিন্ন হতে পারে।
আপনার নির্দিষ্ট কোয়েরিগুলোর খরচ এবং পারফরম্যান্স আরও ভালোভাবে বোঝার জন্য আমরা কোয়েরি এক্সপ্লেইন ফিচারটি ব্যবহার করার পরামর্শ দিই।
রিড অপারেশন
অধিকাংশ রিড অপারেশনের মধ্যে হয় কোনো নির্দিষ্ট ডকুমেন্ট থেকে পয়েন্ট রিড করা, অথবা কোনো আইডেন্টিফায়ারের উপর ভিত্তি করে ডেটার একটি পরিসর স্ক্যান করা অন্তর্ভুক্ত থাকে। রিড অপারেশনে রিড ইউনিট খরচ হয়। নিম্নলিখিত উদাহরণগুলো দেখুন।
সম্পূর্ণ পাঠ্য অনুসন্ধান
পূর্ণ-পাঠ্য অনুসন্ধান কোয়েরির জন্য চার্জকে একটি টেক্সট ইনডেক্সে অনুসন্ধান করার খরচ এবং ডকুমেন্টগুলো পুনরুদ্ধার করার খরচের মধ্যে ভাগ করা হয়। একটি টেক্সট ইনডেক্সে অনুসন্ধান করার খরচ কোয়েরির জটিলতা এবং ফলাফল খুঁজে বের করার জন্য ইনডেক্সে স্ক্যান করা ডেটার পরিমাণের উপর নির্ভর করে। এই খরচকে প্রভাবিত করে এমন বিষয়গুলোর মধ্যে রয়েছে সার্চ টার্মের সংখ্যা ও প্রকৃতি (যেমন টার্ম, ফ্রেজ), প্রাসঙ্গিকতা স্কোরিং প্রয়োগ করা হয়েছে কিনা এবং কতগুলো ইনডেক্স এন্ট্রি পরীক্ষা করতে হবে। প্রাসঙ্গিক ডকুমেন্ট পুনরুদ্ধারের খরচ অনুসন্ধান পর্ব শেষ হওয়ার পর আনা ডকুমেন্টের সংখ্যা এবং আকারের উপর ভিত্তি করে নির্ধারিত হয়।
নিম্নলিখিত সারণীতে একটি চারাগাছের নার্সারির ই-কমার্স পণ্য ক্যাটালগের জন্য পূর্ণ-পাঠ্য অনুসন্ধান (full-text search) কোয়েরি চালানোর সাথে সম্পর্কিত চার্জগুলি বর্ণনা করা হয়েছে। এই উদাহরণে ধরে নেওয়া হয়েছে যে একটি সংগ্রহে ২,০০,০০০ পণ্যের তালিকা রয়েছে, যেখানে প্রতিটি পণ্যের তালিকা ডকুমেন্টের আকার ২ কিলোবাইট (KiB) এবং সংশ্লিষ্ট টেক্সট সার্চ ইনডেক্সের আকার প্রায় ১০০ মেগাবাইট (MiB)।
| প্রশ্ন | কোডের উদাহরণ | প্রতি কোয়েরিতে ব্যবহৃত আনুমানিক রিড ইউনিট | আনুমানিক খরচ (অঞ্চল: us-central1, মার্কিন ডলারে) |
|---|---|---|---|
| একটি বিরল 'ড্রাই ওয়াটার' স্ট্যাক ফ্ল্যাট ট্রে পণ্যের অনুসন্ধানের ফলে ৩টি নথি পাওয়া গেছে। | | মোট ১০টি রিড ইউনিট পূর্ণ-পাঠ্য অনুসন্ধানের জন্য ৭টি ইউনিট এবং ফেরত আসা নথিগুলোর জন্য অতিরিক্ত ৩টি ইউনিটের ভিত্তিতে। | প্রতি মিলিয়ন কোয়েরিতে ০.৫০ ডলার |
| ঘরের ভেতরে রাখা সমস্ত লেবু জাতীয় গাছ খোঁজার ফলে ৩৬টি নথি পাওয়া গেছে। | | মোট ৪২টি রিড ইউনিট পূর্ণ-পাঠ্য অনুসন্ধানের জন্য ৬টি ইউনিট এবং ফেরত আসা নথিগুলোর জন্য অতিরিক্ত ৩৬টি ইউনিটের উপর ভিত্তি করে। | প্রতি মিলিয়ন কোয়েরিতে ২.১০ ডলার |
| ব্যালকনির জন্য এমন প্ল্যান্টার খুঁজুন যেখানে অনেকগুলো পণ্যের মিল পাওয়া যায়। ফলাফলগুলো প্রাসঙ্গিকতা অনুসারে সাজান এবং অনুসন্ধানের সেরা ৫০টি ফলাফলের মধ্যে সীমাবদ্ধ রাখুন। | | মোট ৭৫টি রিড ইউনিট পূর্ণ-পাঠ্য অনুসন্ধানের জন্য ২৫টি ইউনিট এবং ফেরত আসা নথিগুলোর জন্য অতিরিক্ত ৫০টি ইউনিটের ভিত্তিতে। | প্রতি মিলিয়ন অনুসন্ধানে ৩.৭৫ ডলার |
এই উদাহরণগুলো দেখায় কিভাবে বিভিন্ন কোয়েরি প্যাটার্ন খরচের উপর প্রভাব ফেলে:
- ‘dry water’ কোয়েরিটিতে একটি ফ্রেজ (
"dry water") এবং অতিরিক্ত টার্ম অন্তর্ভুক্ত থাকে। ফ্রেজ সার্চ আরও জটিল, কারণ কোয়েরি ইঞ্জিনকে টোকেনের নৈকট্য এবং ক্রম পরীক্ষা করতে হয়, যা সার্চ পর্বের জন্য ৭টি রিড ইউনিটের কারণ হয়। যেহেতু খুব কম সংখ্যক ডকুমেন্ট মেলে, তাই ডকুমেন্ট পুনরুদ্ধারের খরচ কম হয়। - 'indoor' 'citrus' 'tree' কোয়েরিটি তিনটি পৃথক টার্ম অনুসন্ধান করে। একটি ফ্রেজ সার্চের তুলনায় প্রতিটি টার্মের জন্য এটি কিছুটা কম জটিল হলেও, এতে একাধিক টোকেন খোঁজার প্রয়োজন হয়। 'dry water' উদাহরণটির চেয়ে এর সার্চ ইনডেক্স স্ক্যান খরচ কিছুটা কম (৬ রিড ইউনিট), কিন্তু ৩৬টি ডকুমেন্ট ফেরত আসে, যা মোট খরচ বাড়িয়ে দেয়।
- ‘ব্যালকনি প্ল্যান্টার’ কোয়েরিটির ফুল-টেক্সট সার্চ খরচ উল্লেখযোগ্য ব্যবধানে সর্বোচ্চ, ২৫ ইউনিট। এর প্রধান কারণ হলো, এটি এমন টার্মগুলোর জন্য প্রাসঙ্গিকতা অনুসারে ফলাফল সাজানোর (
.sort({score: {$meta: "textScore"}})) অনুরোধ করে, যেগুলো অনেক ডকুমেন্টের সাথে মেলে। সবচেয়ে প্রাসঙ্গিক শীর্ষ ৫০টি ফলাফল নির্ধারণ করতে, কোয়েরি ইঞ্জিনকে অবশ্যই 'ব্যালকনি' বা 'প্ল্যান্টার'-এর জন্য সমস্ত সম্ভাব্য মিল খুঁজে বের করতে হবে, প্রতিটির জন্য একটি প্রাসঙ্গিকতা স্কোর গণনা করতে হবে এবং তারপরে সেগুলোকে সাজাতে হবে। ইনডেক্সের মধ্যে থাকা বিপুল সংখ্যক সম্ভাব্য টার্মের উপর এই স্কোরিং এবং সাজানোর প্রক্রিয়াটি কম্পিউটেশনালি ইনটেনসিভ, যদিও শেষ পর্যন্ত মাত্র ৫০টি ডকুমেন্ট পাওয়া যায়। টার্মগুলোর ব্যাপকতা এবং প্রাসঙ্গিকতা স্কোরিংয়ের অতিরিক্ত খরচ সার্চ পর্যায়টিকে আরও ব্যয়বহুল করে তোলে।
ভূ-স্থানিক কোয়েরি
ভূ-স্থানিক অনুসন্ধানের চার্জ নির্ভর করে অনুসন্ধানের জটিলতা, ব্যবহৃত নির্দিষ্ট শর্ত ও বিন্যাস এবং প্রাসঙ্গিক ভূ-স্থানিক সূচকের সমস্ত ডেটা স্ক্যান করার জন্য প্রয়োজনীয় সংস্থানের উপর।
নিম্নলিখিত সারণীতে একটি ম্যাপস অ্যাপ্লিকেশনের জন্য জিওস্পেশিয়াল কোয়েরি সম্পাদনের সাথে সম্পর্কিত চার্জগুলি বর্ণনা করা হয়েছে। এই উদাহরণে পয়েন্টস অফ ইন্টারেস্টের প্রতিনিধিত্বকারী ১০,০০,০০০ ডকুমেন্টের একটি সংগ্রহ ধরে নেওয়া হয়েছে, যেখানে প্রতিটি পয়েন্টস অফ ইন্টারেস্ট ডকুমেন্টের আকার ১ কিলোবাইট এবং সংশ্লিষ্ট জিওস্পেশিয়াল ইনডেক্সের আকার প্রায় ৬০ মেগাবাইট।
| প্রশ্ন | কোডের উদাহরণ | প্রতি কোয়েরিতে ব্যবহৃত আনুমানিক রিড ইউনিট | আনুমানিক খরচ (অঞ্চল: us-central1, মার্কিন ডলারে) |
|---|---|---|---|
| সর্বোচ্চ ১০ কিলোমিটারের মধ্যে অবস্থিত সমস্ত দর্শনীয় স্থান খুঁজুন, যা ১০টি ফলাফল দেবে। | | মোট ১৬টি রিড ইউনিট। ভূ-স্থানিক অনুসন্ধানের জন্য ৬টি রিড ইউনিট এবং ফেরত আসা নথিগুলোর জন্য অতিরিক্ত ১০টি ইউনিটের উপর ভিত্তি করে। | প্রতি মিলিয়ন কোয়েরিতে $০.৮০ |
| সর্বোচ্চ ১০০ কিলোমিটার দূরত্বের মধ্যে সমস্ত দর্শনীয় স্থান খুঁজুন এবং ১,০০০টি মিলের মধ্যে থেকে সবচেয়ে কাছের ১০টি দর্শনীয় স্থান ফেরত দিন। | | মোট ১৯টি রিড ইউনিট। ভূ-স্থানিক অনুসন্ধানের জন্য ৯টি রিড ইউনিট এবং ফেরত আসা নথিগুলোর জন্য অতিরিক্ত ১০টি ইউনিটের উপর ভিত্তি করে। | প্রতি মিলিয়ন কোয়েরিতে ০.৯৫ ডলার |
এই উদাহরণগুলো দেখায় কিভাবে বিভিন্ন কোয়েরি প্যাটার্ন খরচের উপর প্রভাব ফেলে:
- ১০ কিমি ব্যাসার্ধের কোয়েরি : এই কোয়েরিটি একটি ছোট ভৌগোলিক এলাকা স্ক্যান করে। যেহেতু এটি এই ১০ কিমি ব্যাসার্ধের মধ্যে মাত্র ১০টি ম্যাচ খুঁজে পায়, তাই কোয়েরি ইঞ্জিনকে এই পয়েন্টগুলোকে দূরত্ব অনুসারে শনাক্ত ও সাজানোর জন্য কম কাজ করতে হয় (যেমনটি
$nearপরোক্ষভাবে করে থাকে)। এর ফলে ইনডেক্স স্ক্যানের খরচ কমে ৬ রিড ইউনিটে দাঁড়ায়। - ১০০ কিমি ব্যাসার্ধের কোয়েরি : এই কোয়েরিটি অনেক বড় একটি এলাকা জুড়ে কাজ করে। কোয়েরিটি ১০০ কিমি ব্যাসার্ধের মধ্যে ১,০০০টি সম্ভাব্য ম্যাচ খুঁজে বের করে। সবচেয়ে কাছের ১০টি পয়েন্টের অনুরোধ পূরণ করার জন্য, কোয়েরি ইঞ্জিনকে দূরত্ব গণনা করতে হয় এবং ইনডেক্সের মধ্যে থাকা আরও অনেক বেশি সংখ্যক ক্যান্ডিডেটকে (১,০০০টি পর্যন্ত পয়েন্ট) সাজাতে হয়। আরও অনেক বেশি পয়েন্ট বাছাই এবং র্যাঙ্ক করার এই অতিরিক্ত গণনার কাজের কারণেই, ১০ কিমি কোয়েরির তুলনায় এই জিওস্পেশিয়াল কোয়েরির খরচ ৯ রিড ইউনিটে বেশি হয়, যদিও এটিও মাত্র ১০টি ডকুমেন্ট ফেরত দেয়।
পয়েন্টটি পড়ে
পয়েন্টের জন্য বিলিং-এর উদাহরণটি নিম্নরূপ:
- একটি ১ কিলোবাইট ডকুমেন্টের পয়েন্ট রিড। ব্যবহৃত হয়: ১ রিড ইউনিট।
- একটি ৪ কিলোবাইট ডকুমেন্টের পয়েন্ট রিড। ব্যবহৃত হয়: ১ রিড ইউনিট।
- একটি ১ MiB ডকুমেন্টের পয়েন্ট রিড। ব্যবহৃত হয়: ২৫৬ রিড ইউনিট।
- প্রতিটি ১ কিলোবাইট আকারের ১০০টি ডকুমেন্টের পয়েন্ট রিড। ব্যবহৃত হয়: ১০০ রিড ইউনিট।
স্ক্যানিং
নিম্নলিখিত উদাহরণগুলিতে এমন পরিস্থিতি অন্তর্ভুক্ত রয়েছে যা নথি বা সূচীভুক্ত এন্ট্রি স্ক্যান করে।
ডকুমেন্ট স্ক্যান করা
- কোয়েরিটি প্রতিটি ১ কিলোবাইট আকারের ১০০টি ডকুমেন্ট স্ক্যান করে। ব্যবহৃত হয়: ২৫ রিড ইউনিট।
স্ক্যানিং সূচক
ডকুমেন্ট বা ইনডেক্স, যা-ই স্ক্যান করা হোক না কেন, বাইটের হিসাবে স্ক্যানিং খরচ একই থাকে। তবে, ইনডেক্সের এন্ট্রিগুলো প্রায়শই আকারে ছোট হয়। ফলে, ডেটা স্ক্যান করার জন্য এগুলো প্রায়শই আরও সাশ্রয়ী একটি উপায় হতে পারে।
- কোয়েরিটি ১০০টি ইনডেক্স এন্ট্রি স্ক্যান করে, যার প্রতিটির সাইজ ১ কিলোবাইট। ব্যবহৃত হয়: ২৫ রিড ইউনিট।
- কোয়েরিটি ১০০টি ইনডেক্স এন্ট্রি স্ক্যান করে, যার প্রতিটি ১২৮ বাইটের। ব্যবহৃত হয়: ৪ রিড ইউনিট।
নথি বা সূচী এন্ট্রির ন্যূনতম আকার
কিছু পরিস্থিতিতে, একটি কোয়েরি সম্পন্ন করার জন্য কোনো ডকুমেন্ট বা ইনডেক্স এন্ট্রির বিষয়বস্তু পড়ার প্রয়োজন নাও হতে পারে। এর মধ্যে রয়েছে সাধারণ গণনা কোয়েরি, যেমন কোনো কালেকশনে থাকা মোট ডকুমেন্টের সংখ্যা গণনা করা। এইসব ক্ষেত্রে, স্ক্যান করা প্রতিটি আইটেমের জন্য ন্যূনতম ৩২ বাইট খরচ প্রযোজ্য হয়।
- একটি কালেকশনে থাকা ডকুমেন্টের সংখ্যা গণনা করুন। কোয়েরিটি কালেকশনটির ১০০০টি আইটেম স্ক্যান করে। ব্যবহৃত হয়: ৮ রিড ইউনিট।
স্ক্যানিং এবং পয়েন্ট রিডের সংমিশ্রণ
অনেক কোয়েরি কোনো একটি অপারেশন সম্পন্ন করার জন্য স্ক্যানিং এবং পয়েন্ট রিডের সংমিশ্রণ ব্যবহার করে।
- এই কোয়েরিটি প্রতিটি ২৫৬ বাইটের ১২৮টি ইনডেক্স এন্ট্রি স্ক্যান করে এবং প্রতিটি ৪ কিলোবাইটের ১২৮টি ডকুমেন্ট পয়েন্ট রিড করে। এর জন্য ব্যবহৃত হয়: ১৩৬টি রিড ইউনিট, যা গঠিত:
- পয়েন্ট রিডের জন্য ১২৮ রিড ইউনিট
- ইনডেক্স স্ক্যানের জন্য ৮টি রিড ইউনিট
প্রশ্ন ব্যাখ্যা করুন
কোয়েরি এক্সপ্লেইন আপনাকে বুঝতে সাহায্য করে যে ডাটাবেস কীভাবে আপনার কোয়েরিগুলো সম্পাদন করে। এখানে প্রদত্ত বিবরণ আপনাকে আপনার কোয়েরিগুলো অপ্টিমাইজ করতে সাহায্য করতে পারে।
Query Explain ব্যবহার করার ক্ষেত্রে নিম্নলিখিত খরচগুলো প্রযোজ্য:
- কোয়েরি ব্যাখ্যা করুন কোনটি কোয়েরিটি সম্পাদন করে: কোয়েরি কস্ট প্রযোজ্য।
- শুধুমাত্র প্ল্যান অপশন ব্যবহার করে কোয়েরি এক্সপ্লেইন। খরচ: ১ রিড ইউনিট (একটি কোয়েরির সর্বনিম্ন খরচ)।
লেখার ক্রিয়াকলাপ
রাইট অপারেশন (তৈরি, আপডেট এবং ডিলিট)-এর চার্জ, অপারেশন চলাকালীন তৈরি, পরিবর্তন বা ডিলিট করা ডকুমেন্ট এবং ইনডেক্সের আকারের উপর ভিত্তি করে ধার্য করা হয়। রাইট অপারেশনে রাইট ইউনিট ব্যবহৃত হয়। রাইট ইউনিট ১ কিলোবাইট (KiB) ট্রাঞ্চে গণনা করা হয়।
ডকুমেন্ট আইডি দ্বারা আপডেটের মতো সাধারণ রাইট অপারেশনের ক্ষেত্রে শুধুমাত্র রাইটের খরচই প্রযোজ্য হয়। যে রাইট অপারেশনগুলো সম্পন্ন করার জন্য কোয়েরি করার প্রয়োজন হয়, সেগুলোর ক্ষেত্রে অতিরিক্তভাবে কোয়েরি-সম্পর্কিত রিড খরচও যুক্ত হয়।
নিম্নলিখিত উদাহরণগুলো দেখুন।
তৈরি করে
- কোনো ইনডেক্স ছাড়া একটি নতুন ১০ কিলোবাইট ডকুমেন্ট তৈরি করুন। ব্যবহৃত হবে: ১০ রাইট ইউনিট।
- কালেকশনটিতে ২৫৬ বাইটের ১টি ইনডেক্স এন্ট্রি সহ একটি ১ কিলোবাইট ডকুমেন্ট তৈরি করুন। ব্যবহৃত উপাদান: ২ রাইট ইউনিট
আপডেট
- ডকুমেন্ট আইডি দ্বারা একটি ১০ কিলোবাইট (KiB) ডকুমেন্ট খুঁজুন এবং কালেকশনে কোনো ইনডেক্স ছাড়াই তা আপডেট করুন। ব্যবহৃত উপাদান: ১০ রাইট ইউনিট।
- ডকুমেন্ট আইডি দ্বারা একটি ১ কিলোবাইট (KiB) ডকুমেন্ট খুঁজুন এবং ২৫৬ বাইটের ১টি ইনডেক্স এন্ট্রি দিয়ে ১টি ফিল্ড আপডেট করুন। ব্যবহৃত হয়: ৩ রাইট ইউনিট। দ্রষ্টব্য: এই ক্ষেত্রে একটি ইনডেক্স এন্ট্রি আপডেট করতে ২টি রাইট ইউনিট ব্যবহৃত হয় – একটি ডিলিট করার জন্য এবং অন্যটি ইনডেক্স এন্ট্রিটি পুনরায় তৈরি করার জন্য।
- ডকুমেন্ট আইডি দ্বারা একটি ১ কিলোবাইট ডকুমেন্ট খুঁজুন এবং কোনো কিছু আপডেট করবেন না (কোনো পরিবর্তন করবেন না)। ব্যবহৃত হয়: ১ রাইট ইউনিট (সর্বনিম্ন রাইট খরচ)।
- একটি কালেকশনের সমস্ত ১ কিলোবাইট (KiB) ডকুমেন্ট কোয়েরি করুন, যা ১,০০০টি ডকুমেন্ট স্ক্যান করে, এবং কালেকশনটিতে কোনো ইনডেক্স ছাড়াই একটি নতুন ২৫৬ বাইটের ফিল্ড ইনসার্ট করুন: ১০০০ রিড ইউনিট এবং ১০০০ রাইট ইউনিট।
মুছে ফেলে
- ১ কিলোবাইট আকারের একটি ডকুমেন্ট মুছে ফেলুন, যেটির কালেকশনটিতে ১টি ইনডেক্স রয়েছে। ব্যবহৃত হবে: ২ রাইট ইউনিট।
- ১ কিলোবাইট আকারের একটি ডকুমেন্ট মুছে ফেলুন, যেটির কালেকশনে কোনো ইনডেক্স নেই। ব্যবহৃত হবে: ১ রাইট ইউনিট।
সূচক তৈরি করে
ইনডেক্স বিল্ড অপারেশন চলাকালীন তৈরি বা পরিবর্তিত ইনডেক্স এন্ট্রিগুলোর জন্য চার্জ ধার্য করা হয়। যখনই কোনো ইনডেক্স ডেফিনিশন যোগ বা অপসারণ করা হয়, তখনই এই খরচগুলো প্রযোজ্য হয়। ইনডেক্স এন্ট্রিগুলোর বিল রাইটের মতোই করা হয়, যেখানে প্রতি ১ কিলোবাইটের জন্য ১ রাইট ইউনিট চার্জ করা হয়।
- ৫০০টি ডকুমেন্ট সম্বলিত একটি কালেকশনের জন্য একটি নতুন ইনডেক্স তৈরি করুন, প্রতিটি ইনডেক্স এন্ট্রির আকার ১ কিলোবাইট। এর জন্য ৫০০ রাইট ইউনিট ব্যবহৃত হয়।
- ৫০০টি ডকুমেন্ট সম্বলিত একটি কালেকশনের বিদ্যমান ইনডেক্স মুছে ফেলুন, মুছে ফেলা প্রতিটি ইনডেক্স এন্ট্রির আকার ১ কিলোবাইট। এর জন্য ৫০০ রাইট ইউনিট ব্যবহৃত হয়।