ফিল্টার সূচক বনাম কলাম অন্তর্ভুক্ত


11

আমরা বর্তমানে tb_tranfers নামের টেবিলের সাথে কাজ করি । এই টেবিলটিতে 40 মিলিয়ন সারি রয়েছে এবং আকারটি 26 গিগাবাইট ডলার (11 জিবি ডেটা, 15 জিবি সূচী)।

10 থেকে 15% সারিগুলি নরম-মুছে ফেলা সারিগুলি (মুছে ফেলা তারিখটি নাল নয়)। Applicaiton শুধুমাত্র সারি ব্যবহার যেখানে DeletedDate নাল হয়। এই টেবিলের সমস্ত প্রশ্নের মধ্যে সেই প্রভাবের একটি ধারা অন্তর্ভুক্ত করা হবে।

এই টেবিলে 15 টি সূচক রয়েছে। অনুপস্থিত সূচক ডিএমভিতে অন্তর্ভুক্ত কলাম হিসাবে মুছে ফেলা তারিখ সহ সূচি তৈরির পরামর্শ রয়েছে ।

WHERE DeleteDdate IS NULL11 টি নন-ক্লসেটেড ইনডেক্সে ফিল্টারড ইনডেক্স ব্যবহার করা কি সহায়ক হবে? অথবা ডিলিটেড ডেট কলামটি অন্তর্ভুক্ত কলাম হিসাবে থাকা ভাল কি ?

উত্তর:


12

হ্যাঁ, সমস্ত 11 এনসি সূচকগুলি ফিল্টার করা সূচিগুলিতে ( CREATE INDEX ... ON ... WHERE DeletedDate IS NULL) পরিবর্তন করতে সহায়তা করবে। এইভাবে আপনি দুটি সুবিধা পাবেন:

  • ক্যোয়ারী অপ্টিমাইজার জানবে যে এই সূচকগুলি থেকে আসা যে কোনও সারি ইতিমধ্যে মুছে ফেলা তারিখে আপনার ক্যোয়ারী ফিল্টারগুলিকে সন্তুষ্ট করে , তাই ডিলিটডেটে ডাবল চেক করার জন্য এটি ক্লাস্টারড সূচীটি অনুসন্ধান করতে হবে না
  • সমস্ত এনসি সূচকগুলি 10-15% আকারে ছোট হবে, কম মেমরির প্রয়োজন হবে এবং অনুসন্ধানের জন্য আরও কম আইও অপারেশন দরকার হবে।

বাণিজ্যটি হ'ল যে কোনও কোয়েরি যা নরম মোছা সারিগুলি দেখায় (এবং সেখানে কিছু জিজ্ঞাসা থাকতে হবে, অন্যথায় সারিগুলি কেন বিদ্যমান?) এই এনসি সূচকগুলি ব্যবহার করতে অক্ষম হবে।


7

আপনি যদি নিজের প্রশ্নগুলিতে ফিল্টারটি সবসময় ব্যবহার করেন DeletedDate IS NULLতবে হ্যাঁ আপনি সম্ভবত ফিল্টার যুক্ত করে একটি উল্লেখযোগ্য পারফরম্যান্স বৃদ্ধি পাবেন।

ইঞ্জিনের প্রাসঙ্গিক সারিগুলি অনুসন্ধান করার জন্য এটি অনেক কম পৃষ্ঠাগুলি, যার অর্থ কম আইও (এবং আরও গতি)।

এটিকে INCLUDEDক্ষেত্র হিসাবে যুক্ত করা অকেজো হবে । যেহেতু আপনি সর্বদা এটি ফিল্টারে অন্তর্ভুক্ত করছেন, (তবে সম্ভবত এটি নির্বাচন করুন তালিকায় কখনও যোগ করবেন না), আপনি যদি ক্ষেত্রটিকে এটি হিসাবে যুক্ত করেন তবে সেই ক্ষেত্রটি কখনই উল্লেখ করা হবে না INCLUDE


2

যেহেতু 85-90% সারিগুলির মুছে ফেলা ডিলিটডেট রয়েছে, এটি অসম্ভাব্য যে এসইকিউএল এই সূচকটি ব্যবহার করার জন্য কেবল মুছে ফেলা ডেটের সমন্বিত একটি সূচকের নির্বাচনের পক্ষে যথেষ্ট। যাইহোক, অন্যান্য আরও নির্বাচনী কলামগুলির সাথে একত্রে ব্যবহৃত, বিদ্যমান সূচকগুলিতে ডিলিটডেট তারিখ যুক্ত করে কিছুটা উপকার দেওয়া উচিত যদি এটি সূচকের সামগ্রিক নির্বাচনকে বাড়িয়ে তোলে।

জেএনকে যেমন বলেছে, মোছা সূচকগুলি মুছে ফেলার ক্ষেত্রে মুছে ফেলা তারিখের খুব কম ব্যবহার হবে যদি না আপনি সেফটি ক্লজে ব্যবহার করেন।

তথ্যের তুলনায় সূচকের জন্য ইতিমধ্যে আরও বেশি সঞ্চয়স্থান রয়েছে তা প্রদত্ত, আপনিও দেখতে চাইতে পারেন যে বিদ্যমান 15 এনসি সূচকে কোনও অপ্রয়োজনীয়তা আছে কিনা।

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