Secondary Indexes DynamoDB-তে একটি অত্যন্ত গুরুত্বপূর্ণ বৈশিষ্ট্য, যা ডেটাবেসের বিভিন্ন ধরনের Query অপারেশন সহজতর করতে সাহায্য করে। DynamoDB মূলত দুটি ধরনের Secondary Index সমর্থন করে:
এগুলো মূল টেবিলের Primary Key এর বাইরে অন্যান্য অ্যাট্রিবিউটের উপর ভিত্তি করে ডেটাকে আরও কার্যকরীভাবে অনুসন্ধান এবং এক্সেস করার সুযোগ দেয়।
Global Secondary Index (GSI) একটি শক্তিশালী ফিচার, যা আপনাকে Partition Key এবং Sort Key এর বাইরে অন্য কোনও অ্যাট্রিবিউটের উপর ভিত্তি করে ডেটা অনুসন্ধান করতে দেয়। GSI সম্পূর্ণভাবে স্বাধীন এবং এর Partition Key এবং Sort Key মূল টেবিলের সঙ্গেও ভিন্ন হতে পারে। এটি আপনাকে Query এবং Scan অপারেশনগুলির জন্য আরও বেশি flexibility প্রদান করে।
ধরা যাক, আপনি একটি Products টেবিল তৈরি করেছেন, যেখানে ProductID
হল Partition Key এবং Category
হল Sort Key:
Price
অ্যাট্রিবিউট দিয়ে ডেটা অনুসন্ধান করতে চান, তাহলে আপনি একটি Global Secondary Index তৈরি করতে পারেন যেখানে Price
হবে Partition Key বা Sort Key।এতে করে আপনি Price
অনুযায়ী খুব দ্রুত ডেটা রিড করতে পারবেন, যদিও Price
মূল টেবিলের কোনো পার্টিশন বা সার্ট কী নয়।
Local Secondary Index (LSI) একটি অন্যরকম ধরনের ইন্ডেক্স, যা মূল টেবিলের Partition Key এর উপর ভিত্তি করে কাজ করে, কিন্তু Sort Key আলাদা করে দেয়। এর মাধ্যমে, আপনি মূল টেবিলের Partition Key (যেটি অপরিহার্য) এবং Sort Key এর একাধিক ভিন্ন ভিন্ন কন্ট্রোল তৈরি করতে পারেন।
ধরা যাক, আপনি একটি Users টেবিল তৈরি করেছেন যেখানে UserID
হল Partition Key এবং DateOfBirth
হল Sort Key:
City
একটি নতুন Sort Key হবে।এভাবে, আপনি একই UserID এর মধ্যে DateOfBirth বা City দিয়ে ডেটা অনুসন্ধান করতে পারবেন।
বৈশিষ্ট্য | 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-Demand | Provisioned এবং On-Demand উভয় ধরনের ক্যাপাসিটি ব্যবহার করা যেতে পারে। | শুধুমাত্র Provisioned ক্যাপাসিটির অধীনে ব্যবহৃত হয়। |
Performance Impact | GSI টেবিলের পারফরম্যান্সে খুব কম প্রভাব ফেলে। | LSI মূল টেবিলের পারফরম্যান্সের সাথে সম্পর্কিত, তাই এটি বেশি প্রভাব ফেলতে পারে। |
Data Retrieval Flexibility | অনেক বেশি ফ্লেক্সিবিলিটি, কারণ আপনি যেকোনো অ্যাট্রিবিউট নির্বাচন করতে পারেন। | কম ফ্লেক্সিবিলিটি, কারণ এটি মূল Partition Key এর উপর নির্ভরশীল। |
Consistency | Strongly consistent reads সাপোর্ট করে। | Strongly consistent reads সাপোর্ট করে। |
এখন যদি তোমার আরও কোনো প্রশ্ন থাকে বা অন্য কোনো বিষয়ে জানতে চাও, আমি সাহায্য করতে প্রস্তুত!
common.read_more