কোনও পাঠ্য ফাইলে ডেটা সংরক্ষণের জন্য ডেটাবেসকে কখন স্টোর করার জন্য পছন্দ করা উচিত?
উইকিপিডিয়া আমাদের জানায় যে একটি ডাটাবেস হ'ল ডেটা সংঘবদ্ধ সংগ্রহ । যে পরিমাপ দ্বারা, আপনার টেক্সট ফাইল হয় একটি ডাটাবেস। এটা বলতে যায়:
বাস্তবতার প্রাসঙ্গিক দিকগুলি এমনভাবে মডেল করার জন্য ডেটাগুলি সংগঠিত করা হয় যা এই তথ্যের প্রয়োজনীয় প্রক্রিয়াগুলিকে সমর্থন করে। উদাহরণস্বরূপ, হোটেলগুলিতে কক্ষগুলির প্রাপ্যতা এমনভাবে মডেলিং করা যা শূন্যপদে কোনও হোটেল সন্ধানকে সমর্থন করে।
এই অংশটি বিষয়গত - এটি কীভাবে ডেটা মডেল করা উচিত বা কোন ক্রিয়াকলাপটি অপ্টিমাইজ করা প্রয়োজন তা আমাদের নির্দিষ্ট করে বলে না। আপনার পাঠ্য ফাইলটিতে প্রতিদিনের জন্য একটি আলাদা আলাদা রেকর্ড রয়েছে, যাতে আপনি আপনার সমস্যার সাথে প্রাসঙ্গিকভাবে এমন বাস্তবতার একটি মডেল তৈরি করছেন।
আমি বুঝতে পেরেছি যে আপনি যখন "ডাটাবেস" বলছেন আপনি সম্ভবত কিছু প্রকারের সম্পর্কিত ডেটাবেস ম্যানেজমেন্ট সিস্টেমের কথা ভাবছেন, তবে আপনার পাঠ্য ফাইলটিকে একটি ডাটাবেস হিসাবে ভাবলে আপনার প্রশ্নটি "আমার কখন একটি ডেটাবেস ব্যবহার করা উচিত?" থেকে পরিবর্তিত হয়? "আমার কী ধরণের ডাটাবেস ব্যবহার করা উচিত?" সেই আলোতে জিনিসগুলি দেখে উত্তরটি আরও সহজ হয়: আপনি যখন না পেয়ে থাকেন তখন আপনার প্রয়োজনীয়তা পূরণ না করে আরও ভাল ডাটাবেস ব্যবহার করুন।
যদি আপনার পাইথন স্ক্রিপ্ট এবং সাধারণ পাঠ্য ফাইলটি যথেষ্ট পরিমাণে কাজ করে তবে পরিবর্তন করার দরকার নেই। প্রতিদিন কেবল একটি নতুন রেকর্ড এবং কম্পিউটারগুলি প্রতি বছর দ্রুততর হওয়ায়, আমি সন্দেহ করি যে আপনার বর্তমান সমাধানটি দীর্ঘ সময়ের জন্য কার্যকর হতে পারে। এক দশকের মূল্যবান ডেটা আপনাকে কেবল 3650 রেকর্ড দেবে যা একবার পার্স করার পরে সম্ভবত 75 কিলোবাইটের চেয়ে কম প্রয়োজন।
কল্পনা করুন যে প্রতিদিন একটি ছোট রেকর্ডের পরিবর্তে, আপনি কোডআরভিউতে জিজ্ঞাসা করা প্রতিটি প্রশ্ন, কে এটি জিজ্ঞাসা করেছেন এবং কখন রেকর্ড করার সিদ্ধান্ত নিয়েছেন। তদতিরিক্ত, আপনি সমস্ত উত্তর এবং প্রাসঙ্গিক মেটাডেটা সংগ্রহ করেন। আপনি পারে একটি টেক্সট ফাইলে যে সব সংরক্ষণ, কিন্তু একটি ফ্ল্যাট ফাইল এটা কঠিন তথ্য খুঁজে পেতে যখন আপনি এটি প্রয়োজন করতে হবে। পুরো জিনিসটি মেমোরিতে পড়ার জন্য প্রচুর পরিমাণে ডেটা থাকবে, সুতরাং যখনই আপনি কোনও প্রশ্ন বা উত্তর খুঁজতে চেয়েছিলেন, আপনি যা অনুসন্ধান করছেন তা না পাওয়া পর্যন্ত আপনাকে ফাইলটি স্ক্যান করতে হবে। আপনি যখন কোনও প্রদত্ত ব্যবহারকারীর দ্বারা জিজ্ঞাসিত সমস্ত প্রশ্ন খুঁজতে চেয়েছিলেন, আপনাকে পুরো ফাইলটি স্ক্যান করতে হবে। আপনি যদি ট্যাগ হিসাবে "বাগগুলি" রয়েছে এমন সমস্ত প্রশ্নের সন্ধান করতে চান তবে আপনাকে ফাইলটি স্ক্যান করতে হবে।
এটি মারাত্মক ধীর হয়ে যাবে, সুতরাং আপনি কোনও সূচক তৈরি করে জিনিসগুলি গতি বাড়ানোর সিদ্ধান্ত নিতে পারেন যা প্রদত্ত রেকর্ডটি খুঁজতে ফাইলটিতে কোথায় সন্ধান করতে হবে তা আপনাকে বলে। আপনার প্রশ্নের একটি সূচক থাকতে পারে, ব্যবহারকারীর জন্য আরেকটি, উত্তরের জন্য তৃতীয় এবং আরও অনেক কিছু। আপনি যখন কোনও প্রশ্ন খুঁজতে চেয়েছিলেন (খুব ছোট) প্রশ্ন সূচকটি অনুসন্ধান করতে চান, মূল তথ্য ফাইলে প্রশ্নের অবস্থানটি পান এবং দ্রুত ফাইলের ডান জায়গায় চলে যান। এটি একটি বড় পারফরম্যান্স উন্নতি হতে চাই। প্রকৃতপক্ষে, এটি একটি ডাটাবেস ম্যানেজমেন্ট সিস্টেম কি অনেক বেশি।
সুতরাং, যখন আপনার প্রয়োজন হয় তখন একটি ডিবিএমএস ব্যবহার করুন। আপনার যখন প্রচুর ডেটা থাকে তখন এটি ব্যবহার করুন যখন আপনাকে সেই ডেটা দ্রুত এবং সম্ভবত এমন উপায়ে অ্যাক্সেস করতে সক্ষম হতে হবে যেগুলি আপনি গোড়ায় সম্পূর্ণরূপে ভবিষ্যদ্বাণী করতে পারবেন না। আপনার যদি বিভিন্ন ধরণের ডেটা থাকে - বিভিন্ন ধরণের রেকর্ড - যা একে অপরের সাথে সংযুক্ত থাকে তবে একটি আরডিবিএমএস ব্যবহার করুন যাতে আপনি বিভিন্ন রেকর্ড যথাযথভাবে সম্পর্কিত করতে পারেন ।