আমি জানি শপাইফাই সমস্ত দোকানে কেবলমাত্র একটি ডাটাবেস ব্যবহার করে। কিন্তু তারা কীভাবে এত বড় ডেটা সহ তাদের ডাটাবেস পরিচালনা করতে পারে? 50.000+ শপের জন্য একক ডাটাবেস ব্যবহার করা কি ভাল ধারণা?
আমি জানি শপাইফাই সমস্ত দোকানে কেবলমাত্র একটি ডাটাবেস ব্যবহার করে। কিন্তু তারা কীভাবে এত বড় ডেটা সহ তাদের ডাটাবেস পরিচালনা করতে পারে? 50.000+ শপের জন্য একক ডাটাবেস ব্যবহার করা কি ভাল ধারণা?
উত্তর:
দয়া করে নোট করুন: আমি একটি এসকিউএল সার্ভারের দৃষ্টিকোণ থেকে উত্তর দিচ্ছি, তাই আমি এসকিউএল সার্ভার সম্পর্কিত নির্দিষ্ট কিছু ধারণার উল্লেখ করেছি, তবে আমি বিশ্বাস করি যে এই জাতীয় সমস্ত ধারণাগুলির অনুরূপ সুবিধাগুলি এবং সীমাবদ্ধতার সাথে অন্যান্য বড় আরডিবিএমএস প্ল্যাটফর্মগুলিতে সমতুল্য রয়েছে।
আমি অন্যান্য সম্ভাব্য উপকার / বোধ সম্পর্কে ভাবতে থাকায় আমি সম্ভবত এই উত্তরটি সম্পাদনা করা চালিয়ে যাব।
ঠিক আছে, এটি সত্যই স্কিমা, ভলিউম ইত্যাদির উপর নির্ভর করে একটি দোকান স্টোরিং ঠিক কী? এটি কীভাবে প্রায় 50,000 বিড়াল বা 50,000 পণ্য বা 50,000 ডানা বাদে ডেটা সংরক্ষণ করার থেকে আলাদা?
বিভিন্ন কারণ রয়েছে (কেবলমাত্র আকারের দিক ব্যতীত নিজেই) আপনি কেন একক ডাটাবেসে 50,000 বিভিন্ন গ্রাহকের জন্য ডেটা সংরক্ষণ করতে চান না, যদি সত্যিকার অর্থে গ্রাহক দ্বারা ডেটা সম্পূর্ণ আলাদা করা যায় (জিপকোডের মতো লুক টেবিলগুলি বা না অন্তর্ভুক্ত) অ্যাপ্লিকেশন-নির্দিষ্ট সারণী, যা একক, কেন্দ্রীয় ডাটাবেসে যেতে পারে):
যদি কোনও গ্রাহক অ্যাপ্লিকেশনটি আউটগ্রেজ করে, কেবল তাদের ডেটা বের করে নেওয়ার কোনও সহজ উপায় নেই এবং এটি অন্য কোনও উদাহরণে, সার্ভার ইত্যাদিতে সরিয়ে নেওয়া যায়, যদি না আপনি আগে থেকে পরিকল্পনা করেন এবং যেমন কিছু অংশে ভাগ না করেন CustomerID
এবং ৫০,০০০ ফাইলগোষ্ঠী (আপনি সীমাবদ্ধ থাকেন) যাইহোক, 15,000 পার্টিশন থেকে , বা আপনি যদি এসকিউএল সার্ভারের একটি পুরানো সংস্করণে রয়েছেন, এবং 1000 এর বেশি ফাইলগ্রুপ থাকা বিপর্যয়কর হতে পারে )। এছাড়াও নোট করুন যে বিভাজনের জন্য এন্টারপ্রাইজ সংস্করণ প্রয়োজন।
যদি এটির সক্রিয় হয়ে যায় যে আপনার সমস্ত গ্রাহক এই উদাহরণের জন্য খুব বড়, স্কেল আউট করার অর্থ হল নতুন হার্ডওয়্যার পাওয়া এবং সেখানে পুরো ডাটাবেস সরিয়ে নেওয়া (এবং সম্ভাব্যভাবে এটি আবার রাস্তায় নামানো)।
গ্রাহককে মুছে ফেলা সমানভাবে বেদনাদায়ক হতে পারে, কারণ আপনাকে খুব বড় টেবিল থেকে কয়েক% সারি মুছে ফেলতে হবে, এবং এটি সস্তা হবে না।
আপনার সম্ভবত গ্রাহকদের ডেটা বিস্তৃত হবে (এক বিলিয়ন সারি সহ এক গ্রাহক, ৫,০০০ সহ অন্য গ্রাহক)। এর ফলে কার্ডিনালিটি এবং পরিকল্পনার মান জড়িত প্যারামিটার স্নিফিং এবং ক্ষতিকারক পারফরম্যান্সের মতো জিনিসগুলি হতে পারে (যেহেতু আপনি সম্ভবত খুব আলাদা ডেটা সেটগুলির বিপরীতে একই প্রশ্নের জন্য একই পরিকল্পনা পুনরায় ব্যবহার করবেন)।
আপনার সমস্ত গ্রাহক একই একই এসএলএ এবং এইচএ / ডিআর পরিকল্পনার অধীন। আপনি হয় পুরো মিনিটের সাথে এন-মিনিটের লগ ব্যাকআপ সহ পুরো পুনরুদ্ধার মোডে ডেটাবেস পাবেন বা আপনি সরল এবং পুরো + ডিফ ব্যাকআপগুলিতে নির্ভর। যদি আপনার কোনও গ্রাহকের ত্রুটির কারণে ফিরে যেতে হয়, বা সময় সময়কালে ডাটাবেসটি পুনরুদ্ধার করতে হয় তবে এটি প্রতিটি গ্রাহককে প্রভাবিত করে।
যেখানে ক্লজ, উদাহরণস্বরূপ, অন্য গ্রাহকের তথ্য এইজন্য এক গ্রাহক, বা হতে পারে মধ্যে বাগ - সেখানে তথ্য আহরণ ত্রুটি জন্য সম্ভাব্য হয় সব অন্যান্য গ্রাহকদের ডেটা।
আইনী জালিয়াতি থাকতে পারে (কিছু সংস্থার কঠোর প্রয়োজনীয়তা থাকতে হবে যে আপনি তাদের ডেটা অন্য কোনও সংস্থার মতো বিশেষ ডাটাবেসে এবং বিশেষত তাদের প্রতিযোগীদের মতো রাখেন না)।
যদি কোনও কোনও গ্রাহকের ডেটার সুরক্ষা গুরুত্বপূর্ণ হয়, তবে এটি সারণীর মধ্যে বিচ্ছিন্নতার চেয়ে ডাটাবেস পৃথকীকরণ ব্যবহার করা আরও সহজ।
প্রতিটি গ্রাহককে পৃথক ডাটাবেসে থাকার কিছু সুবিধা (বা কমপক্ষে একাধিক ডাটাবেস থাকা, প্রতিটি গ্রাহকের জন্য):
DROP DATABASE
।কিছু ত্রুটি: