Secondary Indexes (Global এবং Local Secondary Indexes)

Database Tutorials - ডাইনামোডিবি (DynamoDB) Indexes এবং Performance Optimization |
272
272

Secondary Indexes DynamoDB-তে একটি অত্যন্ত গুরুত্বপূর্ণ বৈশিষ্ট্য, যা ডেটাবেসের বিভিন্ন ধরনের Query অপারেশন সহজতর করতে সাহায্য করে। DynamoDB মূলত দুটি ধরনের Secondary Index সমর্থন করে:

  1. Global Secondary Index (GSI)
  2. Local Secondary Index (LSI)

এগুলো মূল টেবিলের Primary Key এর বাইরে অন্যান্য অ্যাট্রিবিউটের উপর ভিত্তি করে ডেটাকে আরও কার্যকরীভাবে অনুসন্ধান এবং এক্সেস করার সুযোগ দেয়।


Global Secondary Index (GSI)

Global Secondary Index (GSI) একটি শক্তিশালী ফিচার, যা আপনাকে Partition Key এবং Sort Key এর বাইরে অন্য কোনও অ্যাট্রিবিউটের উপর ভিত্তি করে ডেটা অনুসন্ধান করতে দেয়। GSI সম্পূর্ণভাবে স্বাধীন এবং এর Partition Key এবং Sort Key মূল টেবিলের সঙ্গেও ভিন্ন হতে পারে। এটি আপনাকে Query এবং Scan অপারেশনগুলির জন্য আরও বেশি flexibility প্রদান করে।

বিশেষত্ব:

  • Partition Key এবং Sort Key এর কোন বাধ্যবাধকতা নেই; আপনি যে কোনও অ্যাট্রিবিউটকে Partition Key বা Sort Key হিসেবে ব্যবহার করতে পারেন।
  • GSI টেবিলের সাথে সম্পর্কিত নতুন অ্যাট্রিবিউটগুলো ইন্ডেক্সের অংশ হতে পারে।
  • GSI তৈরি এবং আপডেট করার সময় টেবিলের পারফরম্যান্সের উপর খুব বেশি প্রভাব পড়ে না কারণ এটি মূল টেবিল থেকে আলাদা হয়।
  • Provisioned বা On-Demand উভয় ধরনের ক্যাপাসিটি মডে ব্যবহার করা যায়।

GSI এর ব্যবহার উদাহরণ:

ধরা যাক, আপনি একটি Products টেবিল তৈরি করেছেন, যেখানে ProductID হল Partition Key এবং Category হল Sort Key:

  • যদি আপনি Price অ্যাট্রিবিউট দিয়ে ডেটা অনুসন্ধান করতে চান, তাহলে আপনি একটি Global Secondary Index তৈরি করতে পারেন যেখানে Price হবে Partition Key বা Sort Key

এতে করে আপনি Price অনুযায়ী খুব দ্রুত ডেটা রিড করতে পারবেন, যদিও Price মূল টেবিলের কোনো পার্টিশন বা সার্ট কী নয়।


Local Secondary Index (LSI)

Local Secondary Index (LSI) একটি অন্যরকম ধরনের ইন্ডেক্স, যা মূল টেবিলের Partition Key এর উপর ভিত্তি করে কাজ করে, কিন্তু Sort Key আলাদা করে দেয়। এর মাধ্যমে, আপনি মূল টেবিলের Partition Key (যেটি অপরিহার্য) এবং Sort Key এর একাধিক ভিন্ন ভিন্ন কন্ট্রোল তৈরি করতে পারেন।

বিশেষত্ব:

  • LSI শুধুমাত্র একই Partition Key এর মধ্যে বিভিন্ন Sort Key তৈরি করতে সাহায্য করে।
  • একাধিক Sort Key এর সাহায্যে বিভিন্ন ধরনের query অপারেশন করা যায়, যা মূল টেবিলের সাথে একসাথে ব্যবহার করা যেতে পারে।
  • LSI সর্বোচ্চ 5টি পর্যন্ত Secondary Index তৈরি করতে সক্ষম।
  • LSI ব্যবহার করার সময়, ইনডেক্সটি মূল টেবিলের ক্যাপাসিটির মধ্যে সীমাবদ্ধ থাকে, অর্থাৎ এটি একই Provisioned বা On-Demand ক্যাপাসিটি শেয়ার করে।

LSI এর ব্যবহার উদাহরণ:

ধরা যাক, আপনি একটি Users টেবিল তৈরি করেছেন যেখানে UserID হল Partition Key এবং DateOfBirth হল Sort Key:

  • আপনি যদি City এর ওপর ভিত্তি করে ডেটা অনুসন্ধান করতে চান, তাহলে একটি Local Secondary Index তৈরি করতে পারেন যেখানে City একটি নতুন Sort Key হবে।

এভাবে, আপনি একই UserID এর মধ্যে DateOfBirth বা City দিয়ে ডেটা অনুসন্ধান করতে পারবেন।


GSI এবং LSI এর মধ্যে পার্থক্য

বৈশিষ্ট্যGlobal Secondary Index (GSI)Local Secondary Index (LSI)
Partition Keyস্বাধীন, মূল টেবিলের Partition Key থেকে আলাদা হতে পারে।মূল টেবিলের Partition Key এর সাথে মেলে।
Sort Keyস্বাধীন, মূল টেবিলের Sort Key থেকে আলাদা হতে পারে।মূল টেবিলের Sort Key এর সাথে মেলে।
Maximum Number of Indexesসীমাহীন, একাধিক GSI তৈরি করা যেতে পারে।সর্বোচ্চ 5টি LSI তৈরি করা যেতে পারে।
Provisioned/On-DemandProvisioned এবং On-Demand উভয় ধরনের ক্যাপাসিটি ব্যবহার করা যেতে পারে।শুধুমাত্র Provisioned ক্যাপাসিটির অধীনে ব্যবহৃত হয়।
Performance ImpactGSI টেবিলের পারফরম্যান্সে খুব কম প্রভাব ফেলে।LSI মূল টেবিলের পারফরম্যান্সের সাথে সম্পর্কিত, তাই এটি বেশি প্রভাব ফেলতে পারে।
Data Retrieval Flexibilityঅনেক বেশি ফ্লেক্সিবিলিটি, কারণ আপনি যেকোনো অ্যাট্রিবিউট নির্বাচন করতে পারেন।কম ফ্লেক্সিবিলিটি, কারণ এটি মূল Partition Key এর উপর নির্ভরশীল।
ConsistencyStrongly consistent reads সাপোর্ট করে।Strongly consistent reads সাপোর্ট করে।

Conclusion

  • Global Secondary Index (GSI) ব্যবহার করা উচিত যখন আপনি এমন একটি ইন্ডেক্স চান যা আপনার টেবিলের Partition Key এবং Sort Key এর বাইরে অন্য কোনো অ্যাট্রিবিউটের মাধ্যমে দ্রুত ডেটা অনুসন্ধান করতে সক্ষম।
  • Local Secondary Index (LSI) ব্যবহার করা উচিত যখন আপনি একাধিক Sort Key এর সাহায্যে একই Partition Key এর মধ্যে বিভিন্ন ধরনের ডেটা অনুসন্ধান করতে চান। LSI মূল টেবিলের পারফরম্যান্সের সাথে সম্পর্কিত হওয়ায় এটি অতিরিক্ত কনফিগারেশনের প্রয়োজন হতে পারে।

এখন যদি তোমার আরও কোনো প্রশ্ন থাকে বা অন্য কোনো বিষয়ে জানতে চাও, আমি সাহায্য করতে প্রস্তুত!

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion