টেবিলের সমস্ত কলামের সমন্বয়ে একটি প্রাথমিক কীটির কোনও সুবিধা আছে কি?


17

আমার কাছে চারটি কলামের সাথে একটি টেবিল রয়েছে যা সমস্ত অ-অযোগ্য। এর অর্থ হ'ল যদি আমি একটি প্রাথমিক কী তৈরি করি তবে এটিতে সমস্ত কলাম তৈরি করা দরকার। টেবিলের বিপরীতে অনুসন্ধানগুলি সর্বদা সর্বদা একক রেকর্ডকে ফিরিয়ে আনতে হবে, অর্থাৎ সমস্ত কলাম ক্যোয়ারীতে ফিল্টার করা হবে।

যেহেতু প্রতিটি কলাম অনুসন্ধান করা দরকার, তাই একটি প্রাথমিক কী থাকা কি আমার উপকারে আসে (রেকর্ডের স্বতন্ত্রতা প্রয়োগের পাশাপাশি)?

উত্তর:


12

আপনার ক্ষেত্রে এই ক্ষেত্রগুলি প্রাকৃতিক কী।

সারোগেট কী:

সারোগেট কীগুলি এমন কীগুলি যার কোনও "ব্যবসায়" অর্থ হয় না এবং কেবলমাত্র টেবিলের একটি রেকর্ড সনাক্ত করতে ব্যবহৃত হয়। এই জাতীয় কীগুলি হয় ডেটাবেস উত্পন্ন (উদাহরণস্বরূপ: এসকিউএল সার্ভারে পরিচয়, ওরাকলে সিকোয়েন্স, ডিবি 2 ইউডিবিতে সিকোয়েন্স / সনাক্তকরণ ইত্যাদি) বা সিস্টেম উত্পন্ন মান (যেমন স্কিমাতে একটি সারণীর মাধ্যমে উত্পন্ন)।

প্রাকৃতিক কী:

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

প্রাথমিক কীগুলির জন্য সারোগেট কীগুলি বনাম প্রাকৃতিক কীগুলি

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


2
আমি সাধারণত লোকেদের বলি যে তারা খণ্ডিত সূচী এবং দুর্বল পারফরম্যান্সের গ্যারান্টি না দিতে না পারলে তাদের একটি সার্গেট কী ব্যবহার করা উচিত। সর্বদা ব্যতিক্রম আছে তবে খুব সামান্য, এই ক্ষেত্রে খুব কম।
অ্যান্ড্রুএসকিউএল

7

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

যদি আপনি এই জাতীয় কোনও সার্গেট কী না যোগ করেন তবে আপনি কীভাবে চারটি কলামের প্রাথমিক কী হিসাবে থাকা ডেটা অ্যাক্সেসের বর্ণনা দিচ্ছেন তা অসুবিধে হবে না। আপনি যদি টেবিলটির জন্য ক্লাস্টারড ইনডেক্সটি তৈরি করেন তবে এটি অনুরোধগুলিকে সহায়তা করবে কারণ প্রদত্ত সারির ডেটা সন্ধানের জন্য ডিস্কের বি-ট্রিতে একটি স্তর থাকবে।


1

প্রাথমিক কী হিসাবে যৌগিক কীগুলি সূচক আকারের সমস্যাগুলিতেও চালিত হয় যা ডিস্ক ব্যবহার, আইও গতি এবং ব্যাকআপগুলিকে প্রভাবিত করতে পারে। আপনি প্রাথমিক কী এবং ক্লাস্টারযুক্ত সূচকগুলি সম্পর্কে কিম্বারলি ট্রিপের পোস্টগুলি এখানে পর্যালোচনা করতে চাইতে পারেন: http://www.sqlskills.com/BLOGS/KIMBERLY/post/The-Clustered-Index-Debate-again !.aspx

আমিও এই ক্ষেত্রে প্রাকৃতিক কোনও পরিবর্তে একটি সারোগেট কীটি সুপারিশ করব।


0

যদি আপনার কাছে একটি টেবিল থাকে যা কেবলমাত্র 2 টি কলামগুলিতে বহু-বহু-সম্পর্কের প্রতিনিধিত্ব করে, এটি যুক্তিসঙ্গত বলে মনে হয়।

Cf. এই তাই প্রশ্ন

তবে আমি স্বীকার করি, আমি এমনকি সরোগেট কী যুক্ত করেছি cases

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