টেবিল বিভাজন কীভাবে সহায়তা করে?


28

টেবিল বিভাজন সম্পর্কে আমার পক্ষে মতামত গ্রহণ করতে অসুবিধা হচ্ছে। আমি এমন একটি প্রকল্পে কাজ শুরু করতে চলেছি যার ৮ টি টেবিল থাকবে এবং এর মধ্যে একটি হ'ল মূল ডেটা টেবিল যা 180-260 মিলিয়ন রেকর্ড ধারণ করবে। যেহেতু এটি যথাযথভাবে তালিকাভুক্ত টেবিল হবে, তাই আমি টেবিলের রেকর্ডগুলি 2 মিলিয়নে সীমাবদ্ধ রাখার কথা ভাবছি আমাকে 9-13 টেবিল তৈরি করতে হবে।

তবে এটির পারফরম্যান্সটি কীভাবে উন্নত হবে সে সম্পর্কে আমি পুরোপুরি নিশ্চিত নই কারণ তারা একই মেশিনে বসে থাকবে (32 জিবি র‌্যাম)?

আমি মাইএসকিউএল ব্যবহার করছি এবং টেবিলগুলি মাইআইএসএএম হবে এবং বড় টেবিলের আইডি ক্ষেত্রে সূচি থাকবে এবং পূর্ণ পাঠ্য অনুসন্ধান ইত্যাদির মতো আরও জটিলতা নেই etc.

টেবিল বিভাজন বনাম ডাটাবেস বিভাজন উপর দয়া করে আলোকপাত করুন।


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

এটি কেবল আইডি হবে।
রিক জেমস

'কেবল আইডি' এখনও আমাদের কিছু বলে না। সমস্ত আইডির পরিসরের মধ্যে আইডিকে কীভাবে বিতরণ করা হয়? আপনি কি মূলত নতুনদের জন্য অনুসন্ধান করছেন, এটি কি সত্যই বিতরণ করা হয়েছে? তথ্য অ্যাক্সেস বেশিরভাগই পড়া বা বেশিরভাগ লিখতে হবে? আমরা আপনাকে বিশেষভাবে সহায়তা করতে পারার আগে এগুলির সমস্ত গুরুত্বপূর্ণ প্রশ্নের উত্তর আমাদের দরকার। এটি বলেছিল, নীচের উত্তরগুলি সত্যিই দরকারী :) :)
ওয়াল্টার হেক

1
এই থ্রেডটি শুরু করার 5 বছর পরে আমার অনুভূতিগুলি এখানে রয়েছে।
রিক জেমস

উত্তর:


32

নিম্নলিখিতটি কেবল উন্মাদ র‌্যাটিং এবং হিংস্র ...

যদি আপনি সমস্ত তথ্য এক টেবিলে রেখে দেন (কোনও বিভাজন নেই), আপনি কী ব্যবহার করে ও (লগ এন) অনুসন্ধানের সময় পাবেন। আসুন বিশ্বের সবচেয়ে খারাপ সূচকটি নেওয়া যাক, বাইনারি ট্রি। প্রতিটি গাছের নোডের ঠিক একটি চাবি থাকে one 268,435,455 (2 ^ 28 - 1) গাছের নোড সহ পুরোপুরি সুষম বাইনারি গাছটি 28 এর উচ্চতা হতে পারে you 24 এর উচ্চতার জন্য গাছের নোড The অনুসন্ধানের পথটি 4 টি নোড দ্বারা হ্রাস করা হয়, 14.2857% উচ্চতা হ্রাস। যদি অনুসন্ধানের সময়টি মাইক্রোসেকেন্ডে থাকে তবে অনুসন্ধানের সময়টিতে 14.2857% হ্রাস শূন্য থেকে তুচ্ছ-উপেক্ষিত।

এখন বাস্তব বিশ্বে, একটি বিটিআরই সূচকে একাধিক কী সহ ট্রিনোড থাকবে। প্রতিটি বিটিআরই অনুসন্ধান অন্য পৃষ্ঠায় একটি সম্ভাব্য শালীন সাথে পৃষ্ঠার মধ্যে বাইনারি অনুসন্ধান করবে। উদাহরণস্বরূপ, যদি প্রতিটি বিটিআরই পৃষ্ঠায় 1024 কী থাকে, তবে 3 বা 4 টির একটি গাছের উচ্চতা আদর্শ হবে, প্রকৃতপক্ষে একটি ছোট গাছের উচ্চতা।

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

এখন এই উপর প্রসারিত করুন। সমস্ত পার্টিশন একই মেশিনে বিদ্যমান। আপনার যদি প্রতিটি পার্টিশনের জন্য পৃথক ডিস্ক না থাকে তবে আপনার বিভাজন অনুসন্ধানের পারফরম্যান্সের বাইরে ডিস্ক I / O এবং স্পিন্ডাল ঘূর্ণন থাকবে automatic

এই ক্ষেত্রে, ডেটাবেস দ্বারা বিভাজন আপনাকে কোনও ক্রয় করবে না যদি আইডি একমাত্র অনুসন্ধান কীটি উচ্চারণ করা হয়।

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

কমপক্ষে দুটি পার্টিশন থাকার সামগ্রিক প্রভাবটি হওয়া উচিত: একটি ঘন ঘন অ্যাক্সেস করা আইডির জন্য এবং অন্য আইডির বাকী অংশটি। যদি প্রায়শই অ্যাক্সেস করা আইডিগুলি মোটামুটি বড় হয় তবে আপনি এটি optionচ্ছিকভাবে বিভাজন করতে পারেন।


16

200 মিলিয়ন সারি অবশ্যই সীমাতে রয়েছে যেখানে আপনি টেবিল বিভাজন থেকে উপকার পেতে পারেন। আপনার আবেদনের উপর নির্ভর করে আপনি নীচে তালিকাভুক্ত কিছু সুবিধা বাজি ধরতে পারেন:

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

  • একাধিক ডিস্ক ভলিউম পার্টিশন আপনাকে গতির জন্য একাধিক ডিস্ক ভলিউম জুড়ে ডিস্ক ট্র্যাফিক বিতরণ করতে ডেটা বিভক্ত করতে দেয়। একটি আধুনিক র‌্যাড কন্ট্রোলারের সাথে এটি সম্ভবত ওপি-র সমস্যা নয়।

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

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

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


1

পার্টিশনটি আপনার সমস্ত সূচকে পার্টিশন করা থাকলে পার্টিশন অনুসারে পার্টিশন দ্বারা সামঞ্জস্যিক পুনর্গঠনগুলির অনুমতি দেয়। যদি তা না হয় তবে পার্টিশনগুলি এখনও অনেক ছোট এবং পুনরায় লাগাতে কম ওয়ার্কস্পেস ব্যবহার করে। এবং, অভ্যন্তরীণভাবে, কোনও "ভাল" ডিবিএমএস পার্টিশনযুক্ত টেবিলের সমান্তরালে জিনিসগুলি করতে পারে। সম্ভবত এটি মাইএসকিউএল বা মাইআইএসএএম অন্তর্ভুক্ত করে না, এমনকি ....


বিভাজন জড়িত থাকা সত্ত্বেও মাইএসকিউএল কোনও সমান্তরাল প্রক্রিয়াকরণ করে না । মাইএসকিউএল সূচকগুলি কেবল একটি পার্টিশন; সুতরাং UNIQUEএবং FOREIGN KEYবিভাজনযুক্ত টেবিলগুলিতে সত্যই উপলভ্য নয়। মাইআইএসএএম বনাম ইনোডিবিতে বিভাজন - এই থ্রেডে আলোচিত বিষয়গুলির সাথে কোনও পার্থক্য নেই।
রিক জেমস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.