TinyDB-তে Index ডেটার দ্রুত অনুসন্ধান এবং ফিল্টার করার একটি শক্তিশালী উপায়। Indexing মূলত ডেটার ওপর একটি বিশেষ কাঠামো তৈরি করে, যা ডেটার অবস্থান সম্পর্কে তথ্য সংরক্ষণ করে। ফলে ডেটাবেসে ডেটা ফিল্টারিং বা Fetch করার সময় সরাসরি ডেটার সঠিক অবস্থানে পৌঁছানো যায়, যা অপারেশনকে দ্রুততর করে।
Indexing কীভাবে কাজ করে?
- Index তৈরি: TinyDB ডিফল্টভাবে প্রতিটি ফিল্ডের জন্য স্বয়ংক্রিয়ভাবে Index তৈরি করে।
- অনুসন্ধানের সময়: যখন আপনি ডেটা Fetch করার জন্য একটি Query চালান, তখন TinyDB Index ব্যবহার করে ডেটা সনাক্ত করে।
- দ্রুত অ্যাক্সেস: Index-এর কারণে সম্পূর্ণ ডেটাবেস স্ক্যান না করে সরাসরি সংশ্লিষ্ট ডেটা Retrieve করা যায়।
Index ব্যবহার করে ডেটা Fetch করার কার্যকারিতা
১. দ্রুত পারফরম্যান্স
Index-এর সাহায্যে সরাসরি ডেটার সঠিক অবস্থান চিহ্নিত করা যায়। এটি O(1) টাইম কমপ্লেক্সিটির কাছাকাছি পারফরম্যান্স প্রদান করে।
উদাহরণ:
ধরা যাক, আপনার ডাটাবেসে ১০,০০০ ডকুমেন্ট আছে। Index ছাড়া প্রতিটি ডকুমেন্ট স্ক্যান করতে সময় লাগবে। কিন্তু Index-এর সাহায্যে সুনির্দিষ্ট ফিল্ডে সরাসরি অ্যাক্সেস করা সম্ভব।
২. কম্পিউটেশনাল কার্যক্ষমতা বৃদ্ধি
বড় ডেটাসেটে যেখানে প্রতিটি ডকুমেন্ট স্ক্যান করার প্রয়োজন হতে পারে, সেখানে Index ব্যবহার করে TinyDB শুধুমাত্র প্রাসঙ্গিক ডেটা Fetch করতে পারে।
উদাহরণ:
from tinydb import TinyDB, Query
db = TinyDB('data.json')
# ডেটা যোগ
db.insert({'name': 'Rahim', 'age': 30})
db.insert({'name': 'Karim', 'age': 25})
db.insert({'name': 'Mehedi', 'age': 22})
# Index ব্যবহার করে নির্দিষ্ট Query চালানো
User = Query()
result = db.search(User.age == 25)
print(result)
এখানে User.age ফিল্ডের জন্য Index কাজ করে এবং দ্রুত ফলাফল প্রদান করে।
৩. মেমরি দক্ষতা
TinyDB-এর Index ছোট আকারে সংরক্ষিত হয় এবং ডেটা অনুসন্ধানের সময় এটি RAM-এ লোড করে কার্যক্রম দ্রুততর করে।
৪. বড় ডেটাবেস পরিচালনা
যখন ডাটাবেস বড় হয়, তখন Index ছাড়া প্রতিটি অনুসন্ধানে সম্পূর্ণ ডাটাবেস স্ক্যান করতে হয়। Index ব্যবহার করে এই সমস্যা দূর করা যায় এবং বড় ডেটাবেসেও কার্যকারিতা বজায় রাখা যায়।
উদাহরণ: Index-এর কার্যকারিতা পর্যালোচনা
from tinydb import TinyDB, Query
db = TinyDB('data.json')
# ডেটা যোগ
for i in range(10000):
db.insert({'id': i, 'value': f'Data {i}'})
# Index ব্যবহার করে অনুসন্ধান
User = Query()
result = db.search(User.id == 5000)
print(result)
ফলাফল:
Index-এর কারণে ডাটাবেস স্ক্যান না করেও সরাসরি id == 5000 ডকুমেন্টটি খুঁজে পাওয়া সম্ভব।
Index ব্যবহার করার সুবিধা
| বিষয় | Index ব্যবহার করলে | Index ব্যবহার না করলে |
|---|---|---|
| পারফরম্যান্স | দ্রুত ডেটা Fetch করা সম্ভব। | সম্পূর্ণ ডাটাবেস স্ক্যান করতে হয়। |
| বড় ডেটাসেট | সহজে পরিচালনা করা যায়। | সময় এবং রিসোর্স বেশি লাগে। |
| দক্ষতা | CPU এবং মেমরি ব্যবহারে কার্যক্ষমতা বৃদ্ধি পায়। | CPU এবং মেমরি ব্যবহারে অপ্রয়োজনীয় লোড হয়। |
| ডেটা অনুসন্ধান | সরাসরি ডেটার অবস্থান চিহ্নিত করা যায়। | প্রতিটি রেকর্ড পরীক্ষা করতে হয়। |
সারাংশ
TinyDB-তে Indexing ডেটা Fetch করার সময় পারফরম্যান্স বাড়ায় এবং বড় ডেটাবেসেও কার্যকারিতা নিশ্চিত করে। Index-এর মাধ্যমে ডেটার সঠিক অবস্থান চিহ্নিত করা যায় এবং দ্রুত অনুসন্ধান করা সম্ভব। এটি মেমরি ও CPU রিসোর্স সাশ্রয়ী করার পাশাপাশি ডাটাবেস অ্যাপ্লিকেশনকে দ্রুততর করে।