সূচকে পড়ার জন্য অবশ্যই আপনার কিছুটা সময় ব্যয় করা উচিত, এটি সম্পর্কে অনেক কিছু লেখা আছে এবং কী চলছে তা বোঝা গুরুত্বপূর্ণ।
বিস্তৃতভাবে বলতে গেলে, একটি সূচী একটি সারণির সারিগুলিতে একটি অর্ডার চাপিয়ে দেয়।
সরলতার জন্য, একটি টেবিলটি কেবল একটি বড় সিএসভি ফাইল imagine যখনই একটি সারি isোকানো হয়, এটি শেষে sertedোকানো হয় । সুতরাং সারণিটির "প্রাকৃতিক" ক্রমটি কেবল সারণি সন্নিবেশ করা হয়েছে।
কল্পনা করুন যে আপনি সিএসভি ফাইলটি খুব প্রারম্ভিক স্প্রেডশিট অ্যাপ্লিকেশনটিতে লোড করেছেন। এই সমস্ত স্প্রেডশিটটি হ'ল ডেটা প্রদর্শন করে এবং সারিগুলিকে ক্রমানুসারে ক্রম করে।
এখন কল্পনা করুন যে আপনার তৃতীয় কলামে "এম" এর কিছু মান রয়েছে এমন সমস্ত সারি সন্ধান করা উচিত। আপনার কাছে যা আছে তা দেওয়া, আপনার কাছে কেবল একটি বিকল্প রয়েছে। আপনি প্রতিটি সারির জন্য তৃতীয় কলামের মান পরীক্ষা করে টেবিলটি স্ক্যান করেন। যদি আপনি প্রচুর সারি পেয়ে থাকেন তবে এই পদ্ধতিটি (একটি "টেবিল স্ক্যান") অনেক বেশি সময় নিতে পারে!
এখন কল্পনা করুন যে এই টেবিলটি ছাড়াও, আপনি একটি সূচক পেয়েছেন। এই নির্দিষ্ট সূচকটি তৃতীয় কলামের মানগুলির সূচক। সূচকটি তৃতীয় কলামের সমস্ত মানকে কিছু অর্থপূর্ণ ক্রমে (বর্ণানুক্রমে বলুন) তালিকাভুক্ত করে এবং তাদের প্রত্যেকের জন্য সারি সংখ্যার একটি তালিকা সরবরাহ করে যেখানে সেই মানটি উপস্থিত হয়।
তৃতীয় কলামটির মান "এম" যেখানে রয়েছে সেখানে সারি সন্ধানের জন্য এখন আপনার কাছে একটি ভাল কৌশল রয়েছে। উদাহরণস্বরূপ, আপনি বাইনারি অনুসন্ধান করতে পারেন ! টেবিল স্ক্যানের জন্য আপনাকে এন সারিগুলি দেখতে হবে (যেখানে এন সারিগুলির সংখ্যা), বাইনারি অনুসন্ধানের জন্য কেবলমাত্র খুব খারাপ ক্ষেত্রে লগ-এন সূচী প্রবেশের দিকে নজর দেওয়া দরকার। বাহ, এটা নিশ্চিত যে অনেক সহজ!
অবশ্যই, যদি আপনার এই সূচকটি থাকে এবং আপনি সারণিতে সারি যুক্ত করে থাকেন (শেষে, আমাদের ধারণাগুলি সারণীটি কীভাবে কাজ করে) তবে আপনাকে প্রতিটি বার সূচি আপডেট করতে হবে। সুতরাং আপনি নতুন সারি লেখার সময় আপনি আরও কিছু কাজ করেন, তবে যখন আপনি কোনও কিছুর সন্ধান করছেন তখন আপনি প্রচুর সময় সাশ্রয় করেন।
সুতরাং, সাধারণভাবে, সূচকগুলি পঠন দক্ষতা এবং লেখার দক্ষতার মধ্যে একটি ট্রেড অফ তৈরি করে। কোনও সূচক না থাকলে, সন্নিবেশগুলি খুব দ্রুত হতে পারে - ডাটাবেস ইঞ্জিনটি কেবল সারণিতে একটি সারি যুক্ত করে। আপনি যখন সূচকগুলি যুক্ত করবেন, ইঞ্জিনটি সন্নিবেশ সম্পাদন করার সময় প্রতিটি সূচি আপডেট করতে হবে।
অন্যদিকে, পাঠগুলি অনেক দ্রুত হয়ে যায়।
আশা করি এটি আপনার প্রথম দুটি প্রশ্নকে কভার করেছে (যেমন অন্যরা উত্তর দিয়েছেন - আপনাকে সঠিক ভারসাম্য খুঁজে বের করতে হবে)।
আপনার তৃতীয় দৃশ্যটি কিছুটা জটিল। আপনি যদি পছন্দ মতো ব্যবহার করেন তবে ইনডেক্সিং ইঞ্জিনগুলি সাধারণত আপনার পড়ার গতিতে প্রথম "%" পর্যন্ত সহায়তা করবে। অন্য কথায়, যদি আপনি 'foo% বার%' কলামটি পছন্দ করেন তবে ডাটাবেস সূচকটি সমস্ত সারি সন্ধান করতে ব্যবহার করবে যেখানে কলাম "foo" দিয়ে শুরু হবে এবং তারপরে সাবসেটটি সন্ধানের জন্য সেই মধ্যবর্তী রোউসেটটি স্ক্যান করতে হবে এতে "বার" রয়েছে। নির্বাচন করুন ... যেখানে কলামের মতো '% বার%' সূচকটি ব্যবহার করতে পারে না। আমি আশা করি আপনি দেখতে পারেন কেন।
শেষ অবধি, আপনাকে একাধিক কলামে সূচিগুলি নিয়ে চিন্তা করতে হবে। ধারণাটি একই, এবং লাইক স্টাফের সাথে একইরকম আচরণ করে - মূলত, আপনার যদি একটি সূচক থাকে (ক, খ, সি), ইঞ্জিনটি বাম থেকে ডানদিকে সূচকটি যথাসম্ভব যথাযথভাবে ব্যবহার করা চালিয়ে যাবে। সুতরাং কলামে একটি অনুসন্ধান (a, b, c) সূচকটি (a, b) এর মতো ব্যবহার করতে পারে। তবে, আপনি কোথা থেকে b = 5 এবং c = 1 অনুসন্ধান করে থাকলে ইঞ্জিনটিকে একটি পূর্ণ টেবিল স্ক্যান করতে হবে)
আশা করি এটি কিছুটা আলোকপাত করতে সহায়তা করবে, তবে আমার অবশ্যই অবশ্যই পুনরুত্থিত করতে হবে যে ভাল নিবন্ধগুলির জন্য এইগুলি গভীরতার সাথে ব্যাখ্যা করার জন্য কয়েক ঘন্টা খনন করা আপনার পক্ষে ভাল। আপনার নির্দিষ্ট ডাটাবেস সার্ভারের ডকুমেন্টেশনগুলি পড়া ভাল ধারণা। ক্যোয়ারী পরিকল্পনাকারীদের দ্বারা সূচকগুলি যেভাবে প্রয়োগ করা হয় এবং ব্যবহার করা হয় তা বেশ বিস্তৃত হতে পারে।