এসকিউএলে একটি সূচক কী ? আপনি ব্যাখ্যা বা স্পষ্টভাবে বুঝতে রেফারেন্স করতে পারেন?
কোথায় আমাকে একটি সূচক ব্যবহার করা উচিত?
এসকিউএলে একটি সূচক কী ? আপনি ব্যাখ্যা বা স্পষ্টভাবে বুঝতে রেফারেন্স করতে পারেন?
কোথায় আমাকে একটি সূচক ব্যবহার করা উচিত?
উত্তর:
ডাটাবেসে অনুসন্ধান দ্রুত করতে একটি সূচক ব্যবহার করা হয়। মাইএসকিউএল-র বিষয়টিতে কিছু ভাল ডকুমেন্টেশন রয়েছে (যা অন্যান্য এসকিউএল সার্ভারের জন্যও প্রাসঙ্গিক): http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html
আপনার ক্যোয়ারীতে কিছু কলামের সাথে মেলে সমস্ত সারি দক্ষতার সাথে খুঁজে পেতে একটি সূচক ব্যবহার করা যেতে পারে এবং তারপরে সঠিক মিলগুলি খুঁজে পেতে কেবল টেবিলের সেই উপসেটটি দিয়েই চলতে পারেন। আপনি যে কোন কলামে ইনডেক্স না থাকে তাহলে WHERE
দফা, SQL
সার্ভার ভিতর দিয়ে হেটে যেতে হয়েছে পুরো টেবিল এবং এটি যদি মিলে যায় দেখতে, বড় টেবিলের উপর একটি মন্থর অপারেশন হতে পারে যা প্রতি সারি পরীক্ষা করুন।
সূচকটিও একটি UNIQUE
সূচক হতে পারে , যার অর্থ এই যে কলামটিতে আপনার সদৃশ মান থাকতে পারে না বা PRIMARY KEY
কিছু স্টোরেজ ইঞ্জিনে এটি সংজ্ঞায়িত করে যেখানে ডাটাবেস ফাইলটিতে মানটি সংরক্ষণ করা হয় is
মাইএসকিউএল এ আপনি EXPLAIN
আপনার SELECT
বিবৃতিটির সামনে ব্যবহার করতে পারেন আপনার জিজ্ঞাসাটি কোনও সূচক ব্যবহার করবে কিনা তা দেখতে। সমস্যা সমাধানের পারফরম্যান্স সমস্যার জন্য এটি একটি ভাল শুরু। এখানে আরও পড়ুন:
http://dev.mysql.com/doc/refman/5.0/en/explain.html
একটি ক্লাস্টার্ড সূচক ফোন বইয়ের বিষয়বস্তুর মতো। আপনি 'হিলডিচ, ডেভিড' বইটি খুলতে পারেন এবং একে অপরের পাশে 'হিলডিচ'-এর সমস্ত তথ্যের সন্ধান করতে পারেন। এখানে ক্লাস্টারড ইনডেক্সের কীগুলি হ'ল (শেষ নাম, প্রথম নাম)।
এটি ক্লাস্টারযুক্ত সূচকগুলি পরিসীমা ভিত্তিক প্রশ্নের ভিত্তিতে প্রচুর ডেটা পুনরুদ্ধারের জন্য দুর্দান্ত করে তোলে যেহেতু সমস্ত ডেটা একে অপরের পাশে অবস্থিত।
যেহেতু ক্লাস্টারড ইনডেক্সটি ডেটা কীভাবে সংরক্ষণ করা হয় তার সাথে সম্পর্কিত, তাই টেবিল প্রতি তাদের মধ্যে কেবল একটিই সম্ভব (যদিও আপনি একাধিক ক্লাস্টারযুক্ত সূচকে অনুকরণ করতে প্রতারণা করতে পারেন)।
একটি ক্লাস্টারবিহীন সূচক আলাদা হয় যে আপনি তাদের অনেকগুলি থাকতে পারেন এবং তারা ক্লাস্টারড ইনডেক্সের ডেটাতে নির্দেশ করে। আপনার যেমন উদাহরণস্বরূপ একটি ফোন বইয়ের পিছনে একটি ক্লাস্টারযুক্ত সূচক থাকতে পারে যা কী (কী, ঠিকানা) রয়েছে
কল্পনা করুন আপনি যদি 'লন্ডনে' বাস করেন এমন সমস্ত লোকের জন্য ফোন বইয়ের মাধ্যমে অনুসন্ধান করতে চান - কেবল ক্লাস্টারড সূচী সহ আপনাকে ক্লাস্টারড ইনডেক্সের কীটি চালু থাকার পরে ফোন বইয়ের প্রতিটি আইটেম সন্ধান করতে হবে (শেষ নাম, প্রথম নাম) এবং ফলস্বরূপ লন্ডনে বসবাসকারী লোকেরা এন্ডেক্সে এলোমেলোভাবে ছড়িয়ে পড়ে।
আপনার যদি (শহরে) ক্লাস্টারবিহীন সূচক থাকে তবে এই প্রশ্নগুলি আরও অনেক দ্রুত সম্পাদন করা যেতে পারে।
আশা করি এইটি কাজ করবে!
একটি খুব ভাল উপমা হ'ল একটি বইয়ের সূচক হিসাবে একটি ডাটাবেস সূচক ভাবা। যদি আপনার কাছে দেশ সম্পর্কিত কোনও বই থাকে এবং আপনি ভারতের সন্ধান করছেন, তবে আপনি কেন পুরো বইটি - যেটি ডাটাবেস টার্মোলজিতে একটি পুরো টেবিল স্ক্যানের সমতুল্য - যখন আপনি কেবল পৃষ্ঠার পিছনে সূচকে যেতে পারবেন বই, যা আপনাকে ভারতের সঠিক পৃষ্ঠাগুলি জানাতে পারে যেখানে আপনি ভারতের তথ্য পাবেন। একইভাবে, একটি বইয়ের সূচীতে একটি পৃষ্ঠা নম্বর রয়েছে, একটি ডাটাবেস সূচীটিতে সারিটির একটি পয়েন্টার রয়েছে যা আপনি নিজের এসকিউএলে অনুসন্ধান করছেন।
অনুসন্ধানগুলির কার্য সম্পাদনের গতি বাড়ানোর জন্য একটি সূচক ব্যবহার করা হয়। এটি দেখার জন্য / স্ক্যান করতে হবে এমন ডাটাবেস ডেটা পৃষ্ঠাগুলির সংখ্যা হ্রাস করে এটি করে।
এসকিউএল সার্ভারে, একটি ক্লাস্টার্ড সূচক কোনও সারণীতে ডেটার দৈহিক ক্রম নির্ধারণ করে। টেবিলের জন্য কেবলমাত্র একটি ক্লাস্টারড ইনডেক্স থাকতে পারে (ক্লাস্টারড ইনডেক্স টেবিলটি) কোনও টেবিলের অন্য সমস্ত সূচকে অ-ক্লাস্টার হিসাবে অভিহিত করা হয়।
সূচকগুলি দ্রুত ডেটা সন্ধান করার জন্য ।
একটি ডাটাবেসে সূচকগুলি সূচকের সাথে সাদৃশ্যপূর্ণ যা আপনি কোনও বইয়ে খুঁজে পান। যদি কোনও বইয়ের একটি সূচক থাকে এবং আমি আপনাকে সেই বইয়ের একটি অধ্যায় সন্ধান করতে বলি, আপনি সূচকের সাহায্যে এটি দ্রুত খুঁজে পেতে পারেন। অন্যদিকে, বইটির কোনও সূচক না থাকলে আপনাকে বইয়ের শুরু থেকে শেষ পর্যন্ত প্রতিটি পৃষ্ঠা দেখে অধ্যায়টি অনুসন্ধান করতে আরও সময় ব্যয় করতে হবে।
অনুরূপ ফ্যাশনে, একটি ডাটাবেসের সূচীগুলি কোয়েরিকে দ্রুত ডেটা সন্ধান করতে সহায়তা করতে পারে। আপনি যদি সূচকে নতুন হন তবে নীচের ভিডিওগুলি খুব কার্যকর হতে পারে। আসলে আমি তাদের কাছ থেকে অনেক কিছু শিখেছি।
সূচকের মূল বিষয়গুলি
ক্লাস্টার্ড এবং অ-ক্লাস্টারযুক্ত সূচিগুলি
অনন্য এবং অ-স্বতন্ত্র
সূচকগুলি সূচকের সুবিধা এবং অসুবিধা
সাধারণ সূচকে ভাল হয় B-tree
। দুটি ধরণের সূচক রয়েছে: ক্লাস্টারড এবং অ ক্ল্লাস্টার্ড।
ক্লাস্টারড ইনডেক্স সারিগুলির একটি শারীরিক ক্রম তৈরি করে (এটি কেবলমাত্র এক হতে পারে এবং বেশিরভাগ ক্ষেত্রে এটি একটি প্রাথমিক কীও হয় - আপনি যদি টেবিলে প্রাথমিক কী তৈরি করেন তবে আপনি এই টেবিলটিতেও ক্লাস্টারড সূচক তৈরি করেন)।
নন ক্ল্লাস্টারড ইনডেক্সও বাইনারি ট্রি তবে এটি সারিগুলির একটি শারীরিক ক্রম তৈরি করে না। সুতরাং ননক্র্লাস্টারড সূচকের পাত নোডগুলিতে পিকে (এটি উপস্থিত থাকলে) বা সারি সূচক থাকে।
সূচীগুলি অনুসন্ধানের গতি বাড়াতে ব্যবহৃত হয়। কারণ জটিলতা ও (লগ এন) এর। সূচকগুলি খুব বড় এবং আকর্ষণীয় বিষয়। আমি বলতে পারি যে বৃহত ডাটাবেসে সূচী তৈরি করা কখনও কখনও কখনও কখনও কখনও কখনও কখনও কখনও কখনও কখনও কখনও কখনও কখনও কখনও কখনও কখনও কখনও কখনও কখনও কখনও থাকে।
প্রথমে আমাদের বুঝতে হবে কীভাবে স্বাভাবিক (ইনডেক্সিং ছাড়াই) ক্যোয়ারি চলে। এটি মূলত প্রতিটি সারি একের পর এক অতিক্রম করে এবং এটি যখন ফিরে আসে সেই ডেটা সন্ধান করে। নীচের চিত্রটি দেখুন। (এই চিত্রটি এই ভিডিও থেকে নেওয়া হয়েছে ।)
সুতরাং ধরুন কোয়েরিটি 50 খুঁজে বের করতে হবে, এটি লিনিয়ার অনুসন্ধান হিসাবে 49 টি রেকর্ড পড়তে হবে।
নীচের চিত্রটি দেখুন। (এই চিত্রটি এই ভিডিও থেকে নেওয়া হয়েছে )
আমরা যখন সূচক প্রয়োগ করি, তখন ক্যোয়ারী বাইনারি অনুসন্ধানের মতো প্রতিটি ট্র্যাভারসাল-এর অর্ধেক ডেটা বাদ দিয়ে কেবল তাদের প্রত্যেকটি না পড়েই ডেটা সন্ধান করে। মাইএসকিএল সূচকগুলি বি-ট্রি হিসাবে সংরক্ষণ করা হয় যেখানে সমস্ত ডেটা লিফ নোডে থাকে।
আইএনডিএক্স একটি কর্মক্ষমতা অপ্টিমাইজেশন কৌশল যা ডেটা পুনরুদ্ধার প্রক্রিয়াটিকে গতি দেয়। এটি একটি অবিরাম ডাটা স্ট্রাকচার যা কোনও সারণীর (বা দেখুন) এর সাথে সম্পর্কিত যা এই টেবিল (বা দেখুন) থেকে ডেটা পুনরুদ্ধার করার সময় কার্যকারিতা বাড়িয়ে তুলবে।
সূচক ভিত্তিক অনুসন্ধান আরও বেশি প্রয়োগ করা হয় বিশেষত যখন আপনার প্রশ্নের মধ্যে WHERE ফিল্টার অন্তর্ভুক্ত থাকে। অন্যথায়, যেমন, WHERE- ফিল্টার ব্যতীত একটি ক্যোয়ারী পুরো ডেটা এবং প্রক্রিয়া নির্বাচন করে। আইএনডিএক্স ছাড়াই পুরো টেবিল সন্ধানকে টেবিল-স্ক্যান বলে।
আপনি স্পষ্ট এবং নির্ভরযোগ্য উপায়ে SQL-সূচকগুলির জন্য সঠিক তথ্য পাবেন: এই লিঙ্কগুলি অনুসরণ করুন:
আপনি যদি এসকিউএল সার্ভার ব্যবহার করেন তবে অন্যতম সেরা সংস্থান হ'ল এটি নিজস্ব বই অনলাইন যা ইনস্টলের সাথে আসে! এটি যে কোনও প্রথম স্থান আমি কোনও এসকিউএল সার্ভার সম্পর্কিত বিষয়গুলির জন্য উল্লেখ করব।
যদি এটি ব্যবহারিক হয় তবে "আমি এটি কীভাবে করব?" ধরণের প্রশ্ন, তবে স্ট্যাকওভারফ্লো জিজ্ঞাসা করার জন্য আরও ভাল জায়গা হবে।
এছাড়াও, আমি কিছুক্ষণের জন্য ফিরে আসিনি তবে sqlservercentral.com সেখানে শীর্ষস্থানীয় এসকিউএল সার্ভার সম্পর্কিত সাইটগুলির মধ্যে একটি হিসাবে ব্যবহৃত হত।
একটি সূচক একটি on-disk structure associated with a table or view that speeds retrieval of rows from the table or view
। একটি সূচীতে সারণী বা দৃশ্যে এক বা একাধিক কলাম থেকে তৈরি কী রয়েছে। এই কীগুলি একটি স্ট্রাকচার (বি-ট্রি) এ সংরক্ষণ করা হয় যা এসকিউএল সার্ভারকে মূল ও মানগুলি সম্পর্কিত এবং সারিগুলি দ্রুত এবং দক্ষতার সাথে সন্ধান করতে সক্ষম করে।
Indexes are automatically created when PRIMARY KEY and UNIQUE constraints are defined on table columns. For example, when you create a table with a UNIQUE constraint, Database Engine automatically creates a nonclustered index.
আপনি যদি কোনও প্রাথমিক কী কনফিগার করেন তবে ক্লাস্টারড সূচক ইতিমধ্যে উপস্থিত না থাকলে ডাটাবেস ইঞ্জিন স্বয়ংক্রিয়ভাবে একটি ক্লাস্টারড সূচক তৈরি করে। আপনি যখন বিদ্যমান টেবিলটিতে একটি প্রাথমিক কী বাধা প্রয়োগ করার চেষ্টা করেন এবং সেই টেবিলটিতে ইতিমধ্যে একটি ক্লাস্টারড সূচক উপস্থিত থাকে, এসকিউএল সার্ভার একটি নন-ক্ল্লাস্টার্ড সূচক ব্যবহার করে প্রাথমিক কীটি প্রয়োগ করে।
সূচকগুলি সম্পর্কে আরও তথ্যের জন্য দয়া করে এটিকে দেখুন (ক্লাস্টারযুক্ত এবং ক্লাস্টারযুক্ত নয়): https://docs.microsoft.com/en-us/sql/relational-databases/indexes/clustered-and-nonclustered-indexes-desmitted?view= SQL সার্ভার-ver15
আশাকরি এটা সাহায্য করবে!