কোনও সূচককে সারিবদ্ধ না করার কোনও সুবিধা আছে কি?


9

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

এসকিউএল সার্ভার ২০০৮-এ কোনও সূচী বিন্যস্ত করার কোনও কারণ নেই?


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

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

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

উত্তর:


11

পার্টিশন বেস বস্তুর উপর একটি (অ-অনন্য) সূচক পার্টিশন না প্রধান সুবিধা যে এটি একটি প্রায় কাজ করে দীর্ঘ দিনের ক্যোয়ারী অপটিমাইজার সীমাবদ্ধতা যেমন আদেশ তথ্য অনুরোধ এর সাথে সম্পর্কিত MIN, MAXঅথবা TOP (n)প্রশ্নের।

পার্টিশন সূচক তারিখে, অপটিমাইজার সাধারণত অনুবাদ করতে পারবে না MIN, MAXঅথবা TOP (n)একই অপারেশনে পার্টিশন প্রতি , প্রতি-পার্টিশন আংশিক দলা উপর একটি চূড়ান্ত বিশ্বব্যাপী সমষ্টিগত করে। অপ্টিমাইজার পরিবর্তে একটি এক্সিকিউশন প্ল্যান চয়ন করে যা সূচকের সমস্ত পার্টিশন স্ক্যান করে। এর ব্যতিক্রমটি একক ক্ষেত্রে যেখানে পার্টিশন কলামের উপরে সমষ্টি বা শীর্ষ অপারেশন নির্দিষ্ট করা আছে।

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


ইস্যজিক বেন-গানের প্রবন্ধটি বিষয়টি ব্যাখ্যা করে।


3

কিছু সীমাবদ্ধতার (যেমন, অনন্য) একটি অ-প্রান্তিককরণ সূচক প্রয়োজনের চারপাশে সুস্পষ্ট সমস্যা রয়েছে ।

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


1
হ্যাঁ. একটি অ-বিন্যস্ত সূচক নির্বাচন করা খুব জ্ঞাত পছন্দ হতে হবে। আমি এটি অতীতে নিজেই করেছি (খুব কম), তবে খুব নির্দিষ্ট পরিস্থিতিতে যেখানে সুবিধাগুলি ব্যয়কে ছাড়িয়ে গেছে।
পল হোয়াইট 9

2

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

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

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