বিদেশী কীতে সূচকের প্রয়োজন


30

আমি ইনডেক্স, প্রাথমিক কী এবং বিদেশী কীগুলির সাথে লড়াই করছি ... এবং সেগুলি থাকা দরকার।

আমার কাছে যদি দুটি টেবিল থাকে, তবে উভয়টিরই প্রাথমিক কী হিসাবে পূর্ণসংখ্যা রয়েছে।
প্রথম টেবিলটি এফকে মাধ্যমে দ্বিতীয় সারণীর প্রাথমিক কীটি উল্লেখ করে।

  • দুটি টেবিলে আইডি কলামে আমার কাছে একটি প্রাথমিক কী সূচক রয়েছে
  • table1.ref_fieldদ্বিতীয় সারণীর পিকে রেফারেন্সিংয়ের জন্য আমি এফকে বাধা তৈরি করেছি ( table2.id)
  • এবং আমি এতে একটি সূচক যুক্ত করেছি table1.ref_field

এই সূচকগুলি, প্রাথমিক এবং বিদেশী কীগুলি সংগঠিত করার কি সেরা উপায়?

উত্তর:


30

আপনার নকশা ভাল। আপনার যদি কোনও পারফরম্যান্স সমস্যা হয় (যা আপনি ডিজাইনের সময় জানতে পারবেন না), আপনার কলাম টেবিল 1.ref_field এ টেবিল 2.id কলাম হিসাবে একই ক্রমে (এএসসি) একটি সূচি তৈরি করা উচিত। এটি টেবিল / কলামগুলির সাথে সংযুক্ত হয়ে পারফরম্যান্সকে উন্নত করবে। যে কোনও সূচক বজায় রাখার জন্য ওভারহেড রয়েছে, সুতরাং উন্নত পারফরম্যান্সের সুবিধার বিরুদ্ধে আপনি সেই ব্যয়টি ওজন করতে চান।

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

এখানে একই বিষয়ে স্ট্যাকওভারফ্লো প্রশ্ন:

বিদেশী কী এবং প্রাথমিক কীগুলিতে পোস্টগ্রিস এবং সূচি

এই জাতীয় সূচক যুক্ত করে আপনি কোথায় উপকৃত হতে পারবেন তা নির্ধারণে সহায়তা করার জন্য এখানে একটি প্রশ্ন রয়েছে:

পোস্টগ্র্যাস্কল: বিদেশী কীগুলির সূচি


এটি সর্বদা দুর্ভাগ্যজনক নয় - আপনি যদি DELETEরেফারেন্স সারণী থেকে না থেকে থাকেন তবে এটি আপনাকে অব্যবহৃত সূচী বজায় রেখে অনেক I / O এবং সিপিইউ সংরক্ষণ করতে পারে। আমি মনে করি এটি ডিফল্টরূপে তৈরি করা উচিত, এর সৃষ্টিটি দমন করার জন্য কেবল একটি বিকল্প রয়েছে।
ক্রেগ রিঞ্জার

ক্রেগ রিঞ্জার কেবল মুছে ফেললেই এর উপর প্রভাব ফেলতে পারে না, আপনি যদি পার্টেন্ট থেকে শিশু টেবিলগুলিতে নির্বাচন করে থাকেন তবে আপনার পারফরম্যান্সের সমস্যাও থাকবে। ওরাকল থেকে প্রাপ্ত এই ডকুমেন্টেশনটি আরও ব্যাখ্যা করে: asktom.oracle.com/pls/asktom/…
777অন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.