আমি সূচী কৌশল সম্পর্কে কিছু গাইডেন্স কোথায় পেতে পারি?


22

আমাদের মধ্যে বেশিরভাগ সম্ভবত সম্মত হবেন যে ডাটাবেস সূচকগুলি ব্যবহার করা ভাল। অনেকগুলি সূচক এবং কার্য সম্পাদন আসলে অবনমিত হতে পারে।

একটি সাধারণ নিয়ম হিসাবে, কোন ক্ষেত্রগুলি সূচী করা উচিত?
কোন ক্ষেত্রগুলি সূচী করা উচিত নয়?
কর্মক্ষমতা উন্নতি অর্জন করতে, অবক্ষয় নয়, অনেক বেশি এবং পর্যাপ্ত সূচকের মধ্যে ভারসাম্য বজায় রেখে সূচকগুলি ব্যবহার করার নিয়ম কী?


7
ইনডেক্সিংয়ে দিকনির্দেশের জন্য , -index-luke.com ব্যবহার করুন
মাইক শেরিল 'ক্যাট রিকল'

উত্তর:


24

সংক্ষিপ্ত

"অনেকগুলি সূচী" নিয়মটি আমার মনে হয় কিছুটা বিভ্রান্তিকর।

দীর্ঘ

প্রদত্ত যে গড় ডাটাবেস প্রায় 98% পঠিত (বা উচ্চতর) পাঠকে অনুকূলিত করা প্রয়োজন। উদাহরণস্বরূপ কোনও অনন্য সূচী থাকলে একটি INSERT হ'ল পঠন। বা একটি আপডেটে WHERE। আমি একবার পড়েছিলাম যে এমনকি একটি লেখার নিবিড় ডাটাবেস এখনও 85% পড়ে।

আপনার কাছে যা আছে তা হ'ল নিম্নমানের সূচক। উদাহরণ:

  • প্রশস্ত ক্লাস্টারযুক্ত সূচি (বিশেষত এসকিউএল সার্ভার)
  • অ-মনোোটোনিক ক্লাস্টারযুক্ত সূচকযুক্ত
  • ওভারল্যাপিং সূচক (যেমন cold, coleএবংcold, cole, colf)
  • অনেকগুলি একক কলাম সূচী (আরও দরকারী সূচীগুলির সাথে ওভারল্যাপিং) যা আপনার প্রশ্নের জন্য অকেজো
  • কোনও অন্তর্ভুক্ত নেই, আচ্ছাদন নয় (যেমন সমস্ত একক কলাম সূচি)
  • ...

নোট করুন এমনকি ওলটিপি সিস্টেমে আপনার আসল ডেটার চেয়ে কয়েকগুণ বড় সূচীগুলি রাখা খুব সাধারণ।

সাধারণত, আমি দিয়ে শুরু করব

  • গুচ্ছ সূচক (সাধারণত পিকে)
  • অনন্য সূচক (সীমাবদ্ধতা নয়, এগুলি আবরণ করা যায় না)
  • বিদেশী কী কলামগুলি

তারপরে আমি এটি দেখতে চাই:

  • সাধারণ জিজ্ঞাসা এবং আমার কী প্রয়োজন তা দেখুন। প্রতি সেকেন্ডে চলমান একটি ক্যোয়ারির সুর করা দরকার needs রবিবার সকাল 4 টায় প্রতিবেদনটি অপেক্ষা করতে পারে।
  • এসকিউএল সার্ভারের সাথে, ভারী নিখোঁজ সূচক ডিএমভিগুলি

এই বলে যে, কোনও সিস্টেমে টিউন করার জন্য কীভাবে জিনিসগুলি প্যান আউট হয়েছে (10 বিলিয়ন সারি পরে) তা দেখার পরে আমি কিছু সিস্টেমের জন্য এই নিয়মগুলি ভঙ্গ করেছি। আমি কেন এমনটি করছিলাম তা যদি না দেখাতে পারি তবে আমি কখনই সূচককে বিবেচনা করব না


2
আপনি কোথা থেকে এই নম্বর পেয়েছেন? 98% ভয়ঙ্কর উচ্চ বলে মনে হচ্ছে, বিশেষত "বিগ ডেটা" এর যুগে (ওরফে সবকিছু সঞ্চয় করে রাখুন এবং আশা করি এটি কোনও দিন দরকারী)
আরএম

7

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


7

কোন সূচকগুলি বেছে নেওয়া উচিত এবং কেন গেইল শ এর দ্বারা লিখিত হবে তার উপর লিখিত নিবন্ধগুলির একদম সহজ সিরিজ। আপনি এখানে ক্লিক করে নিবন্ধগুলি সন্ধান করতে পারেন

আপনি যে প্রশ্নটি জিজ্ঞাসা করছেন তার উত্তর 50 টি বিভিন্ন উপায়ে দেওয়া যেতে পারে। আপনার কাছে থাকা ডেটা এবং কীভাবে এটি অনুসন্ধান করা হবে তা সত্যিই সমস্ত ফোটে। একটি সাধারণ নিয়ম হ'ল গাদা এড়ানোর জন্য আপনার প্রতিটি টেবিলে সর্বদা একটি ক্লাস্টার ইনডেক্স থাকা উচিত। ক্লাস্টারড সূচকগুলি সাধারণত যতটা সম্ভব ছোট হওয়া উচিত। যদি টেবিলটির একটি ক্লাস্টার্ড সূচক থাকে তবে নন-ক্লাস্টারযুক্ত সূচকের পাতায় থাকা সমস্ত সূচি রেকর্ডগুলি বুকমার্কের অনুসন্ধানের জন্য সম্পর্কিত ক্লাস্টারযুক্ত সূচকের রেকর্ড মান সংরক্ষণ করবে। যদি কোনও টেবিলটি হিপ হয় তবে এসকিউএল বুকমার্কের অনুসন্ধানের জন্য একটি অনন্য শনাক্তকারী তৈরি করবে। আমি এটি 8 বা 16 বাইট আকারটি স্মরণ করতে পারি না। এটি একটি বৃহত্তর ডেটাটাইপ হিসাবে শেষ হতে পারে তারপর একটি INT বলতে। হিপ টেবিলে 8 টি নন-ক্লাস্টারযুক্ত সূচী রাখার কল্পনা করুন।


পাঠকদের কাছে কেবল একটি নোট: এমএস এসকিউএল "বুকমার্ক লুচিং" ওরাকল এর "অ্যাকসেস বাই রোউইড" এর সমতুল্য। দেখুন stackoverflow.com/a/820731/122727
kubanczyk

5

আমি এখানে যুক্ত করতে চাই যে বিভিন্ন ডাটাবেসের জন্য বিভিন্ন কৌশল প্রয়োজন। উদাহরণস্বরূপ, মাইএসকিউএল ডাব্লু / ইনোডিবি এবং পোস্টগ্রিসকিউএল তুলনা করা যাক।

InnoDB

ইনোডিবি টেবিলগুলি মূলত প্রাথমিক কীটির একটি বি-ট্রি সূচক যা সূচি প্রবেশের ক্ষেত্রে সারি তথ্য অন্তর্ভুক্ত করার জন্য প্রসারিত। শারীরিক অর্ডার স্ক্যানগুলি সমর্থিত নয় এবং সমস্ত স্ক্যানগুলি যৌক্তিক ক্রমে ঘটে। এর অর্থ দুটি জিনিস:

  1. ইনোডব-এ একটি ক্রমিক স্ক্যান প্রচুর র্যান্ডম ডিস্ক আই / ও তৈরি করে এবং

  2. প্রাথমিক গৌণ সূচকটি অবশ্যই দ্বিতীয় গৌণ সূচকটি ব্যবহার করছে কিনা তা বিবেচনা ছাড়াই অবশ্যই তাকে অনুসরণ করতে হবে।

  3. এই মডেলটিতে অন্য কোনও পদ্ধতির চেয়ে প্রাথমিক কী লকআপগুলি দ্রুত হয়।

এক্ষেত্রে মাল্টি-পৃষ্ঠা সারণীতে পর্যাপ্ত ক্ষেত্রগুলি সূচী করা খুব গুরুত্বপূর্ণ। সাধারণ নিয়মটি হ'ল সূচি হ'ল আপনি যেগুলি ফিল্টার করতে চান তা।

পোস্টগ্রি

পোস্টগ্রিএসকিউএল হ্যাপ ফাইলগুলি ব্যবহার করে, প্রতি ফাইলের জন্য একটি টেবিল (কিছু টেবিল অনেকগুলি ফাইল হতে পারে) যেখানে সেই হ্যাপের মুক্ত স্থান থেকে টিপলগুলি বরাদ্দ করা হয়। শারীরিক অর্ডার স্ক্যানগুলি সমর্থিত। যৌক্তিক অর্ডার স্ক্যানটি কাজ করার জন্য, একটি সূচক যুক্ত করতে হবে।

পোস্টগ্রাইএসকিউএলএর প্রাথমিক কীগুলি মূলত অনন্য সূচকের একটি উপসেট যেখানে কোনও মান NULL নাও হতে পারে। অনন্য বাধাগুলি অন্তর্নিহিত সূচকগুলি ব্যবহার করে করা হয়, এবং অন্যান্য বেশ কয়েকটি সূচি প্রকারগুলি সূচকগুলিতে বিভিন্ন অপারেশনের সাহায্যে সমর্থিত।

এর অর্থ:

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

  2. শারীরিক অর্ডার স্ক্যানগুলি আরও ভাল সঞ্চালন করে, র্যান্ডম ডিস্ক I / O হ্রাস করে যেখানে উল্লেখযোগ্য সংখ্যক সারি প্রক্রিয়াকরণ করা উচিত।

  3. সেকেন্ডারি ইনডেক্স স্ক্যানগুলি মাইএসকিউএল এর চেয়ে ভাল সম্পাদন করে কারণ সারণীর শারীরিক অংশে পৌঁছাতে কেবল একটি সূচক অবশ্যই অনুসরণ করতে হবে।

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

টি এল; ডিআর

আপনার আরডিবিএমএস জানুন।


4

2

এমনকি উপরের লিঙ্কগুলি সব সঙ্গে, আপনি প্রয়োজন কি Kimberly Tripp যত্ন, খাওয়ানো, এবং ইনডেক্স ব্যবহার সংক্রান্ত লিখেছেন তাকান।

শুরু করার জন্য, এই লিঙ্কটি অনুসরণ করুন কিম্বার্লির তার সূচি-সম্পর্কিত ব্লগ পোস্টগুলির সংগ্রহের । আপনি আপনার ব্রাউজার উইন্ডোর বাম দিকে "এই পৃষ্ঠায়" এবং "বিভাগ" উইজেটগুলি ব্যবহার করে নির্দিষ্ট বিষয়গুলি অন্বেষণ করতে সক্ষম হন।

এখানে প্রচুর তথ্য রয়েছে তবে এটির দ্বারা ডানডোবেন না।

কিম্বার্লির প্রায় পৃষ্ঠাটি এখানে


2

আপনি এসকিউএল সার্ভারের সাথে যদি কাজ করে থাকেন তবে আপনাকে দরকারী মনে হতে পারে এমন আরও কিছু সংস্থান এখানে রয়েছে:

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