আমি এটিতেও ডাইভিং করে চলেছি এবং যদিও বিষয়টি সম্পর্কে আমি অনেকদূর রেফারেন্স দিয়েছি, এমন কয়েকটি মূল তথ্য আছে যা আমি জড়ো করেছি এবং আমি ভাগ করতে চাইছি এমন পয়েন্টগুলি:
একটি পার্টিশনটি একটি লজিকাল ডাটাবেস বা এর উপাদান উপাদানগুলিকে পৃথক স্বতন্ত্র অংশে বিভক্ত করে। ডেটাবেস পার্টিশন সাধারণত পরিচালনা, কার্য সম্পাদন বা প্রাপ্যতার কারণে লোড ব্যালেন্সিংয়ের জন্য করা হয়।
https://en.wikipedia.org/wiki/Partition_(database)
ভাগ করে নেওয়া একধরণের পার্টিশন, যেমন অনুভূমিক পার্টিশন (এইচপি)
এখানে উল্লম্ব পার্টিশন (ভিপি) রয়েছে যার মাধ্যমে আপনি কোনও টেবিলকে ছোট আলাদা আলাদা ভাগে ভাগ করে নিন। সাধারণকরণটিতে টেবিলগুলির মধ্যে কলামগুলির এই বিভাজনকেও জড়িত করা হয়, তবে উল্লম্ব পার্টিশনটি এর বাইরে চলে যায় এবং ইতিমধ্যে সাধারণকরণের পরেও পার্টিশন কলামগুলি।
https://en.wikipedia.org/wiki/Shard_(database_architecture)
আমি কোরা সম্পর্কিত টনি বাকোর উত্তরটি সত্যিই পছন্দ করি যেখানে তিনি আপনাকে স্কিমার (কলাম এবং সারিগুলির পরিবর্তে) বিবেচনা করতে বাধ্য করেন। তিনি বলেছেন যে ...
" অনুভূমিক বিভাজন ", বা শারডিং, স্কিমাটির অনুলিপি [অনুলিপি] করছে, এবং তারপরে একটি শার্ড কী এর উপর ভিত্তি করে ডেটা ভাগ করছে।
" উল্লম্ব পার্টিশন " এর মধ্যে স্কিমা বিভাজন জড়িত (এবং ডেটা যাত্রার পাশাপাশি চলে)।
https://www.quora.com/Whats-the-difference-between-sharding-DB-tables-and-partitioning-them
ওরাকল এর ডেটাবেস পার্টিশন গাইডিংয়ে কিছু সুন্দর পরিসংখ্যান রয়েছে। আমি নিবন্ধটি থেকে কয়েকটি অংশ নকল করেছি।
https://docs.oracle.com/cd/B28359_01/server.111/b32024/partition.htm
একটি টেবিল বিভাজন যখন
কখন কোনও টেবিলটি বিভাজন করবেন সে সম্পর্কে এখানে কিছু পরামর্শ রয়েছে:
- 2 জিবি-র বেশি টেবিলগুলি সর্বদা বিভাজনের প্রার্থী হিসাবে বিবেচনা করা উচিত।
- Historicalতিহাসিক ডেটাযুক্ত টেবিলগুলিতে, নতুন পার্টিশনে নতুন ডেটা যুক্ত করা হয়েছে। একটি সাধারণ উদাহরণ একটি .তিহাসিক সারণি যেখানে কেবলমাত্র চলতি মাসের ডেটা আপডেটযোগ্য এবং অন্যান্য 11 মাস কেবল পঠিত হয়।
- যখন কোনও টেবিলের সামগ্রীগুলি বিভিন্ন ধরণের স্টোরেজ ডিভাইসগুলিতে বিতরণ করা প্রয়োজন।
পার্টিশন ছাঁটাই
পার্টিশন ব্যবহার করে পারফরম্যান্স উন্নত করার জন্য পার্টিশন ছাঁটাই সবচেয়ে সহজ এবং সবচেয়ে গুরুত্বপূর্ণ উপায় sub পার্টিশন ছাঁটাই প্রায়শই বিভিন্ন মাত্রার অর্ডার দ্বারা ক্যোয়ারি কার্যকারিতা উন্নত করতে পারে। উদাহরণস্বরূপ, ধরুন কোনও অ্যাপ্লিকেশনটিতে অর্ডারগুলির সারণী রয়েছে যাতে ordersতিহাসিক রেকর্ড রয়েছে এবং এই টেবিলটি সপ্তাহের মধ্যে বিভাজন হয়ে গেছে। এক সপ্তাহের জন্য আদেশের জন্য অনুরোধ করা একটি ক্যোয়ারী কেবলমাত্র অর্ডার সারণীর একক পার্টিশনে অ্যাক্সেস করতে পারে। যদি অর্ডার সারণীতে 2 বছরের historicalতিহাসিক ডেটা থাকে, তবে এই ক্যোয়ারিতে 104 পার্টিশনের পরিবর্তে একটি বিভাজন অ্যাক্সেস করতে পারে। পার্টিশন ছাঁটাইয়ের কারণে এই ক্যোয়ারী 100 গুণ দ্রুত সম্পাদন করতে পারে।
বিভাজন কৌশল
আপনি তাদের পাঠ্য পড়তে পারেন এবং তাদের চিত্রগুলি ভিজ্যুয়ালাইজ করতে পারেন যা সবকিছুকে বেশ ভালভাবে ব্যাখ্যা করে।
এবং সবশেষে, এটি বোঝা গুরুত্বপূর্ণ যে ডাটাবেসগুলি অত্যন্ত সংস্থানীয় সংস্থান:
- সিপিইউ
- ডিস্ক
- ইনপুট / আউটপুট
- স্মৃতি
অনেক ডিবিএর ইচ্ছাই একই মেশিনে বিভক্ত হয়, যেখানে পার্টিশনগুলি সমস্ত সংস্থান ভাগ করে দেবে তবে ডেটা এবং / অথবা সূচককে আলাদা করে ডিস্ক এবং আই / ও-তে উন্নতি করে।
যদিও অন্যান্য কৌশলগুলি "ভাগ করা কিছুই নয়" আর্কিটেকচারকে নিয়োগ করবে যেখানে শার্ডগুলি পৃথক এবং স্বতন্ত্র কম্পিউটিং ইউনিট (নোড) এ থাকবে যেখানে সিপিইউ, ডিস্ক, আই / ও এবং মেমরির 100% থাকবে। এটি নিজের সুবিধার এবং জটিলতার একটি সেট সরবরাহ করে।
https://en.wikipedia.org/wiki/Shared_nothing_architecture