একক ডাটাবেস বনাম একাধিক ডাটাবেস ব্যবহার করার পক্ষে


14

আমি একটি নতুন প্রকল্পে কাজ করছিলাম যার মধ্যে 7 টি ডাটাবেস ব্যবহারের প্রয়োজন ছিল, যুক্তি দিয়ে যে পারফরম্যান্স, স্থিতিশীলতা, অপ্টিমাইজেশন আরও সহজেই প্রয়োগ করা হয়েছে।

আমি একমত না হওয়ার পরেও, একটি একক ডাটাবেস (টেবিলগুলিকে লজিকাল ডোমেনে বিভক্ত করা) ব্যবহার করতে ভাল যুক্তি সংগ্রহ করতে আমার সমস্যা হচ্ছে।

আমার এখনও অবধি একটি যুক্তি হ'ল ডেটা অখণ্ডতা (আমি ডাটাবেসের মধ্যে বিদেশী কী ব্যবহার করতে পারি না)।

একক বা একাধিক ডাটাবেস ব্যবহারের জন্য ভাল কি কি?

[এখনও অবধি সারাংশ]

একাধিক ডাটাবেসের বিরুদ্ধে যুক্তি:

  • ডেটা অখণ্ডতা হারাতে (ডাটাবেসের মাধ্যমে বিদেশী কী ব্যবহার করতে পারে না)

  • পুনরুদ্ধার অখণ্ডতা হারাতে

  • জটিলতা অর্জন (ডিবি ব্যবহারকারী / ভূমিকা)

  • ছোট প্রতিকূলতার সার্ভার / ডাটাবেস ডাউন হয়ে যাবে

সলিউশন:

  • ডোমেনগুলি পৃথক করতে স্কিমা ব্যবহার করুন।

  • পোকা: 7/1 ডিবির এক্সিকিউশন প্ল্যানগুলিতে পয়েন্টটি প্রমাণ করতে ডামি ডেটা ব্যবহার করুন


এটি একটি জটিল অঞ্চল এবং এখানে বিভিন্ন উপকারিতা রয়েছে - এখানে একবার দেখুন এবং এর মধ্যে লিঙ্কগুলি দেখুন ।
ভেরেস

উত্তর:


16

পারফরম্যান্স, স্থিতিশীলতা, অপ্টিমাইজেশানের কোনওটিই সত্য নয়। কারও কাছে কি কোনও যুক্তি বা রেফারেন্স নিবন্ধ আছে কেন এগুলি সত্য হবে?

সংস্থানগুলি একটি ডেটাবেজে বরাদ্দ করা হয় না: এসকিউএল সার্ভার ইনস্ট্যান্সগুলি সংস্থানগুলিকে সংস্থান করে যাতে এতে কোনও তফাত হয় না

তুমি হেরেছ:

  • তথ্য অখণ্ডতা
  • অখণ্ডতা পুনরুদ্ধার করুন (ডিবি 7 এর ডেটা পরে ডিবি 1 হবে)

আপনি জটিলতা অর্জন:

  • সুরক্ষা (ব্যবহারকারী, ভূমিকা ইত্যাদি) সমস্ত ডেটাবেজে থাকতে হবে
  • আপনার কাছে এমন কিছু ডেটা থাকবে যা 1 টি ডাটাবেসে দুর্দান্তভাবে ফিট করে না

বিকল্প:

  • পৃথক ডিস্কে একটি ডাটাবেস বিভক্ত করা ফাইলগ্রুপগুলির সাহায্যে করা যেতে পারে
  • যৌক্তিকভাবে ডেটা আলাদা করতে স্কিমার ব্যবহার করুন (অন্যান্য উত্তরের ভিত্তিতে)

পারফরম্যান্স, স্থায়িত্ব এবং অপ্টিমাইজেশন পয়েন্টগুলির জন্য ওপিতে যেভাবে উত্স নেই, আপনি অন্য কোনওভাবে প্রমাণিত কোনওটিও সরবরাহ করেন না।
এমএমকে

6

যদি আপনি লজিকাল ডোমেন দ্বারা ডেটা বিভক্ত করার পরে আপনি সর্বদা এসকিউএল ২০০৮-এর মধ্যে স্কিমাস ব্যবহারের দিকে নজর রাখতে পারেন (ডিবিওর ডিফল্ট থেকে দূরে চলে যাচ্ছেন) তবে তা বেদনাদায়ক এবং ওআর / এমএসগুলির সাথে সমস্যা সৃষ্টি করতে পারে যা কোনও প্রত্যাশা করে না স্ট্যান্ডার্ড স্কিমা।

আমি একাধিক ডাটাবেস থেকে ডেটা কোলটিংয়ের অবস্থানে ছিলাম এবং এটি বেদনাদায়ক এবং উচ্চ-কর্মক্ষমতা থেকে দূরে। আপনি ডেটা ক্যাশে করা বা গতি বজায় রাখার জন্য কমপক্ষে কৌশল অবলম্বন করেন।

পরীক্ষা হিসাবে, 7 টি ডামি ডাটাবেস তৈরি করুন। একটি কোয়েরি তৈরি করুন যার জন্য সমস্ত 7 থেকে একসাথে ডেটা প্রয়োজন হয় বা তাদের কমপক্ষে একটি ভাল সংখ্যক।

তারপরে ফাঁসির পরিকল্পনা তুলনা করুন! আমি মনে করি আপনি এখনই আপনার মামলা জিতবেন।


আমার ধারণাটি হ'ল লজিক্যাল ডোমেনগুলির জন্য (প্রকৃতপক্ষে) স্কিমা ব্যবহার করা। এছাড়াও সত্তা ডেটা মডেল ব্যবহার করা হবে। বিকল্প হিসাবে আমি 8 টি ডামি

6

পৃথক ডাটাবেস তৈরির ভাল কারণ হ'ল বিভিন্ন প্রাপ্যতার প্রয়োজনীয়তা সমর্থন করা বা প্রশাসনের সরলকরণ। উদাহরণস্বরূপ যদি আপনার ডাটাবেসের জন্য খুব আলাদা ব্যাকআপ শিডিয়ুল বা বিভিন্ন পুনরুদ্ধার মডেল প্রয়োজন require অন্য কারণ হ'ল যদি আপনি এগুলি বিভিন্ন পরিস্থিতিতে চালাতে চান।

একাধিক ডাটাবেসের সাথে এমন কোনও পারফরম্যান্স অপটিমাইজেশন উপলব্ধ নেই যা আপনি একটি ডেটাবেস দিয়েও অর্জন করতে পারবেন না। "পারফরম্যান্স, স্থিতিশীলতা, অপ্টিমাইজেশন" বলতে কী বোঝাতে চেয়েছেন আপনি আরও বিশদ দিতে পারেন?


ক্লায়েন্টটি 'পারফরম্যান্স, স্থায়িত্ব এবং অপ্টিমাইজেশন' সম্পর্কিত বিশদটি এখনও ব্যাখ্যা করেনি। আমি এই উত্তরটি সম্পর্কে কৌতূহলী। এই সপ্তাহের শেষে তাকে কথা বলতে হবে।

4

চিন্তাভাবনা পরীক্ষা: আপনার ডাটাবেসটিকে সাতটি টুকরো বিভক্ত করার পরিবর্তে এটি 7,000 টুকরো করে ভাগ করুন। কোনও হার্ডওয়্যার ব্যর্থতা আপনার প্রয়োগকে প্রভাবিত করতে পারে এমন সম্ভাবনা কী? যদি কোনও 0.1% সম্ভাবনা থাকে যে কোনও নির্দিষ্ট সার্ভার কোনও নির্দিষ্ট দিনেই মারা যেতে পারে, তবে আপনি যে মেশিনগুলির উপর নির্ভরশীল তার সংখ্যা বাড়ানোর সময় আপনি কোনও হার্ডওয়্যার ব্যর্থতায় প্রভাবিত হবেন এমন সম্ভাবনা কি আরও ভাল বা খারাপ হতে পারে?

আমি "ডাটাবেস" ধারণাটি দুটি ভাগে বিভক্ত করা গুরুত্বপূর্ণ বলে মনে করি: স্কিমা এবং ডেটা বনাম হার্ডওয়ার যা ডেটা পরিবেশন করতে ব্যবহৃত হয়।

একাধিক মেশিনে ডাটাবেস ভাঙ্গা এই বিষয়টির অন্যান্য উত্তরগুলির দ্বারা ব্যাখ্যা করা অনেক কারণগুলির জন্য আপনি কোনও ভাল করেন না।

আপনি যদি নির্ভরযোগ্যতা এবং বর্ধিত পারফরম্যান্সের জন্য একাধিক মেশিন ব্যবহার করতে চলেছেন তবে সম্ভবত আপনি এগুলি গঠন করতে পারেন যাতে আপনার কাছে একাধিক উষ্ণ / গরম স্ট্যান্ডবাই মেশিন রয়েছে যা জুড়ে অনুসন্ধানগুলি বিতরণ করতেও ব্যবহৃত হতে পারে master এইভাবে যদি কোনও একটি মেশিন ব্যর্থতা অনুভব করে তবে আপনি কোনও ডেটা হারাবেন না এবং সবচেয়ে খারাপ দিক থেকে আপনাকে একটি প্রশ্ন পুনরায় চালু করতে হবে। অবশ্যই এটি এর চেয়ে জটিল, তবে বেসিকগুলি প্রয়োগ হয়।


2

আমি একটি ডিবিতে সম্মতি জানাই এবং পরিবর্তে ফাইল এবং স্কিমা বিকল্পগুলি ব্যবহার করি।

প্রান্তের কেস রয়েছে যেখানে একাধিক টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো

অ্যাপ্লিকেশন পরিবেশ (ডেভ, টেস্ট, প্রোড) কনফিগারেশন, যেমন এফটিপি সার্ভারগুলি, এক্সপোর্ট ফাইলের পাথ ইত্যাদি,

ক্লায়েন্ট নির্দিষ্ট পদ্ধতি পরিবর্তন পৃথক করার উপায় হিসাবে।

তবে এগুলি সমর্থন এবং না পারফরম্যান্স সমস্যা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.