প্রাথমিক সূচক এবং গৌণ সূচকের মধ্যে পার্থক্য কী? এবং একে অপরের কি লাভ?


উত্তর 1:

প্রথমে মিলগুলি বলি:

মিল

  • উভয় সূচকের কাঠামো ডাটাবেসে পৃথক প্রথম শ্রেণীর বস্তু হিসাবে প্রয়োগ করা হয়। এটি সূচিত করে যে টেবিল এবং তার সম্পর্কিত সূচক (প্রাথমিক বা মাধ্যমিক) দুটি পৃথক কাঠামো হিসাবে উপস্থিত রয়েছে B উভয় দিকনির্দেশের একটি স্তর বাস্তবায়িত করে যেখানে অনুসন্ধানগুলি প্রথমে সূচকে অনুসন্ধান করে এবং এটি চিহ্নিত করার রেকর্ডটি সরাসরি আনার জন্য এই অনুসন্ধানের ফলাফলটি ব্যবহার করে। উভয় প্রকারের সূচকগুলিতে সূচক ব্লকগুলি এন্ট্রিগুলি বাছাই করে রাখে; যেমন প্রকৃত সূচক এন্ট্রি যাই হ'ল → সাধারণত ক সূচক ব্লকের প্রবেশদ্বারগুলি সর্বদা সূচক / অনুসন্ধান কীতে বাছাই করা হয়।

পার্থক্য

প্রাথমিক সূচি

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

মাধ্যমিক সূচক

  • সারিগুলি কীভাবে ডেটা ব্লকগুলিতে সজ্জিত করা হয় তাতে মাধ্যমিক সূচকটির কোনও প্রভাব নেই The তারা যে কোনও ক্রমে থাকতে পারে। কেবলমাত্র অর্ডারিং ব্লকগুলিতে সূচক কীটি তৈরি করা উচিত below নীচের চিত্রটি "গার্সিয়া মোলিনা এট আল দ্বারা ডেটাবেস সিস্টেম বাস্তবায়ন" থেকে নেওয়া হয়েছে তা দেখায় কীভাবে সূচক ব্লকের (বাম পাশে) সূচী প্রবেশকারীগুলিতে পয়েন্টার রয়েছে (এটি ডাটাবেস টার্মিনোলজিতে সারি লোকেটারগুলি রয়েছে) ) ডেটা ব্লকে (ডান দিকের) সাথে সম্পর্কিত সারিগুলিতে। ইনডেক্স কীতে ডেটা ব্লকে সারি সাজানো থাকে না

তুলনা

  • প্রথমত, ব্যবহারকারী একাধিক মাধ্যমিক সূচকগুলি সংজ্ঞায়িত করতে পারে কারণ তাদের সারণিতে সারিগুলির সংগঠনের কোনও প্রভাব নেই। তবে কেবলমাত্র ১ টি প্রাথমিক সূচক থাকতে পারে primary কারণ প্রাথমিক সূচকে প্রাথমিক কীতে থাকা প্রয়োজন হয় না, প্রাথমিক সূচকেও নকল সূচক কী থাকতে পারে। প্রকৃতপক্ষে গৌণ সূচকের জন্য উপরে প্রদর্শিত উদাহরণটি সদৃশ কীগুলির জন্য। এটি উভয়ের পক্ষেই সাধারণ O স্পষ্টতই যদি প্রাথমিক কীতে প্রাথমিক সূচক তৈরি করা হয়, তবে সেখানে ডুপ্লিকেট সূচী কীগুলি পাওয়া যাবে না যেহেতু প্রাথমিক কীটি একটি অনন্য কনট্রেনসেন্টকে প্রয়োগ করে oth উভয় প্রাথমিক এবং মাধ্যমিক সূচকগুলি পয়েন্ট লকআপ এবং সীমার প্রশ্নের জন্য ব্যবহার করা যেতে পারে। তবে বিস্তৃত অনুসন্ধানগুলি উভয় ক্ষেত্রেই প্রাথমিক সূচকের জন্য দ্রুত হওয়া আশা করা যায় - অনন্য সূচি কী এবং সদৃশ সূচি কীগুলি। কোনও অনন্য সূচকের ক্ষেত্রে পয়েন্ট লকআপগুলি প্রাথমিক সূচকের সাথে দ্রুত হওয়া আশা করা যায়। তবে সূচকটি যদি অনন্য থাকে তবে প্রাথমিক ও দ্বিতীয় মাধ্যমিক সূচকের সাথে পয়েন্ট লকআপটি আদর্শভাবে একই সময় নিতে হবে - কমপক্ষে I / O এর একই পরিমাণ প্রাথমিক সূচকটি ডেটা ব্লকের সারিগুলিকে অর্ডার করতে বাধ্য করে। সুতরাং যদি ব্যবহারকারীটি যেখানে KEY> = 20 এবং কী <= 40 এর জন্য সারিগুলি সন্ধান করতে আগ্রহী, সেখানে কম ডিস্ক ব্লক পড়ার উচ্চ সম্ভাবনা রয়েছে এবং এইভাবে I / O কম থাকে। এই কীগুলির সাথে সম্পর্কিত সারিগুলি একই ডেটা ব্লকে রয়েছে (সূচকটি অনন্য না হলেও)। অন্যদিকে, সেকেন্ডারি সূচকের সারিগুলির সংগঠনের উপর কোনও নিয়ন্ত্রণ নেই। সুতরাং 20 এবং 40 এর মধ্যে সমস্ত রেকর্ড সন্ধানের একই উদাহরণের জন্য, প্রতিটি কি এর সাথে সম্পর্কিত রেকর্ড (গুলি) তার নিজস্ব ডেটা ব্লকে বসে আছে। এটি স্পষ্টতই ইঙ্গিত দেয় যে আরও আই / ও থাকবে এবং সুতরাং গৌণ সূচকগুলির সাথে কোয়েরিগুলি কম দক্ষ হতে পারে unique অনন্য সূচক কীগুলির সাথে পয়েন্ট লুপআপের জন্য, সূচকটি প্রাথমিক বা গৌণ কিনা তা সত্যিকার অর্থেই কিছু যায় আসে না। অনুসন্ধানের ফলাফলটি একটি সারি লোকেটার হবে এবং প্রকৃত রেকর্ডে পেতে ডাটাবেসটিকে যাইহোক তা অনুসরণ করতে হবে। সুতরাং একটি একক আই / ও থাকবে primary কারণ প্রাথমিক সূচকগুলি সারিগুলিকে ডেটা ব্লকগুলিতে অর্ডার করতে বাধ্য করে, ডিএমএলগুলি কম দক্ষ হবে। যেহেতু ডিএমএলগুলিকে একটি ডেটা ব্লকের মধ্যে সারিগুলি সাজানো দরকার, INSERT / UPDATE ঘন ঘন সারি চলাচলের কারণ ঘটায় যদি না ব্যবহারকারীরা অনুক্রমিক ক্রমে সন্নিবেশগুলি সম্পন্ন না হয় সেদিকে খেয়াল রাখে A কোনও ডিএমএল ফলস্বরূপ যে কোনও ডাটাতে সারি সারি সারি চালিয়ে যায় সূচকের প্রবেশের পরেও ব্লকটির সাথে সম্পর্কিত প্রাথমিক সূচক কাঠামোর আপডেট প্রয়োজন এখন নতুন সারি লোকেটার দিয়ে আপডেট করা দরকার (কারণ সারিটি সরানো হয়েছিল) ।সাম্পিক গতিপথের পাশাপাশি গৌণ সূচক কাঠামোতেও আপডেটের প্রয়োজন হবে, তবে INSERT যেহেতু সারণি আন্দোলনের ফলে একটি ইনসার্টের সম্ভাবনা তুলনামূলকভাবে কম হয়। কোনও ডাটা ব্লকের মধ্যে সারিগুলি সাজানো ক্রমের দরকার নেই। আকারে ক্রমবর্ধমান সারির মতো কেসগুলি এবং এইভাবে একসাথে সমস্তগুলিতে স্থানান্তরিত হওয়া দরকার মাধ্যমিক সূচকগুলিতে সারি আন্দোলনের কয়েকটি ক্ষেত্রে অন্যতম block

উত্তর 2:

একটি প্রাথমিক সূচক হ'ল স্টোরেজ কাঠামো যা বি-ট্রি-ভিত্তিক স্টোরেজ বিন্যাসে সারণীর আসল বেস সারি থাকে। সাধারণত, সূচকটি যদি সরবরাহ করা হয় তবে প্রিমিয়ারি চাবিতে সংগঠিত হয়।

প্রাথমিক সূচীগুলিকে মাঝে মাঝে "ক্লাস্টারড ইনডেক্স" বলা হয়, যদিও ক্লাস্টার ইনডেক্স বলা সমস্ত জিনিসই "প্রকৃত" প্রাথমিক সূচক বাস্তবায়ন হয় না (যেমন পোস্টগ্র্রেএসকিউএল তে থাকা নয়)।

স্টোরেজ ইঞ্জিনগুলির সিংহভাগ কলামের তথ্য থেকে প্রাপ্ত কোনও নির্দিষ্ট ক্রম ছাড়াই বেস টেবিল সারিগুলি সঞ্চয় করে এবং "সত্য" প্রাথমিক সূচকগুলি প্রয়োগ করে না।

মাত্র কয়েকটি ডিবি স্টোরেজ ইঞ্জিন আসলে প্রাথমিক সূচকগুলি প্রয়োগ করে। ওরাকল "সূচক সংগঠিত টেবিল" এবং মাইএসকিউএল ইনোডিবি হ'ল প্রাথমিক সূচকগুলি প্রয়োগ করে এমন বহুল ব্যবহৃত স্টোরেজ ইঞ্জিন।

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

এই ব্যবস্থাগুলিতে, পিকে লুকআপগুলি অন্য কোনও সূচক ব্যবহার করে লুকআপের চেয়ে কম সস্তা নয়।

যেহেতু প্রাথমিক সূচকটি বেস টেবিল সংস্থার জন্য ব্যবহৃত হয়, আপনি কেবলমাত্র টেবিলের জন্য একটি পান।

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


উত্তর 3:

একটি প্রাথমিক সূচক হ'ল স্টোরেজ কাঠামো যা বি-ট্রি-ভিত্তিক স্টোরেজ বিন্যাসে সারণীর আসল বেস সারি থাকে। সাধারণত, সূচকটি যদি সরবরাহ করা হয় তবে প্রিমিয়ারি চাবিতে সংগঠিত হয়।

প্রাথমিক সূচীগুলিকে মাঝে মাঝে "ক্লাস্টারড ইনডেক্স" বলা হয়, যদিও ক্লাস্টার ইনডেক্স বলা সমস্ত জিনিসই "প্রকৃত" প্রাথমিক সূচক বাস্তবায়ন হয় না (যেমন পোস্টগ্র্রেএসকিউএল তে থাকা নয়)।

স্টোরেজ ইঞ্জিনগুলির সিংহভাগ কলামের তথ্য থেকে প্রাপ্ত কোনও নির্দিষ্ট ক্রম ছাড়াই বেস টেবিল সারিগুলি সঞ্চয় করে এবং "সত্য" প্রাথমিক সূচকগুলি প্রয়োগ করে না।

মাত্র কয়েকটি ডিবি স্টোরেজ ইঞ্জিন আসলে প্রাথমিক সূচকগুলি প্রয়োগ করে। ওরাকল "সূচক সংগঠিত টেবিল" এবং মাইএসকিউএল ইনোডিবি হ'ল প্রাথমিক সূচকগুলি প্রয়োগ করে এমন বহুল ব্যবহৃত স্টোরেজ ইঞ্জিন।

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

এই ব্যবস্থাগুলিতে, পিকে লুকআপগুলি অন্য কোনও সূচক ব্যবহার করে লুকআপের চেয়ে কম সস্তা নয়।

যেহেতু প্রাথমিক সূচকটি বেস টেবিল সংস্থার জন্য ব্যবহৃত হয়, আপনি কেবলমাত্র টেবিলের জন্য একটি পান।

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


উত্তর 4:

একটি প্রাথমিক সূচক হ'ল স্টোরেজ কাঠামো যা বি-ট্রি-ভিত্তিক স্টোরেজ বিন্যাসে সারণীর আসল বেস সারি থাকে। সাধারণত, সূচকটি যদি সরবরাহ করা হয় তবে প্রিমিয়ারি চাবিতে সংগঠিত হয়।

প্রাথমিক সূচীগুলিকে মাঝে মাঝে "ক্লাস্টারড ইনডেক্স" বলা হয়, যদিও ক্লাস্টার ইনডেক্স বলা সমস্ত জিনিসই "প্রকৃত" প্রাথমিক সূচক বাস্তবায়ন হয় না (যেমন পোস্টগ্র্রেএসকিউএল তে থাকা নয়)।

স্টোরেজ ইঞ্জিনগুলির সিংহভাগ কলামের তথ্য থেকে প্রাপ্ত কোনও নির্দিষ্ট ক্রম ছাড়াই বেস টেবিল সারিগুলি সঞ্চয় করে এবং "সত্য" প্রাথমিক সূচকগুলি প্রয়োগ করে না।

মাত্র কয়েকটি ডিবি স্টোরেজ ইঞ্জিন আসলে প্রাথমিক সূচকগুলি প্রয়োগ করে। ওরাকল "সূচক সংগঠিত টেবিল" এবং মাইএসকিউএল ইনোডিবি হ'ল প্রাথমিক সূচকগুলি প্রয়োগ করে এমন বহুল ব্যবহৃত স্টোরেজ ইঞ্জিন।

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

এই ব্যবস্থাগুলিতে, পিকে লুকআপগুলি অন্য কোনও সূচক ব্যবহার করে লুকআপের চেয়ে কম সস্তা নয়।

যেহেতু প্রাথমিক সূচকটি বেস টেবিল সংস্থার জন্য ব্যবহৃত হয়, আপনি কেবলমাত্র টেবিলের জন্য একটি পান।

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