কী, প্রাথমিক কী, ইউনিক কী এবং মাইএসকিউএলে সূচকের মধ্যে পার্থক্য


250

আমি ব্যবহার করা উচিত যখন KEY, PRIMARY KEY, UNIQUE KEYএবং INDEX?


2
প্রাথমিক কী হ'ল সারিগুলি শনাক্তকরণ, একই অভিন্ন ডেটা সহ দুটি সারি সন্নিবেশ করা থেকে বিরত করা ... আইএনএডএক্স কী ত্বরান্বিত অনুসন্ধানের জন্য (সন্নিবেশে স্বল্পতম ধীর)। কলামে অনন্য ডেটার জন্য অনন্য কী।
হোস বুধ বুধবার


উত্তর:


303

KEYএবং INDEXমাইএসকিউএল প্রতিশব্দ হয়। তারা একই জিনিস মানে। ডাটাবেসে আপনি তথ্য পুনরুদ্ধারের গতি উন্নত করতে সূচিগুলি ব্যবহার করবেন । একটি সূচক সাধারণত ব্যবহৃত কলাম তৈরি করা হয় JOIN, WHEREএবং ORDER BYক্লজ।

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

প্রাথমিক কী এবং অনন্য কী একই রকম। একটি প্রাথমিক কী হ'ল একটি কলাম বা কলামগুলির সংমিশ্রণ যা কোনও সারি অনন্যভাবে সনাক্ত করতে পারে। এটি অনন্য কী এর একটি বিশেষ ক্ষেত্রে । একটি সারণীতে সর্বাধিক এক প্রাথমিক কী থাকতে পারে তবে একাধিক অনন্য কী থাকতে পারে। আপনি যখন একটি কলামে একটি অনন্য কী নির্দিষ্ট করেন, কোনও টেবিলের দুটি স্বতন্ত্র সারিতে একই মান থাকতে পারে না।

এছাড়াও নোট করুন যে প্রাথমিক কী বা অনন্য কী হিসাবে সংজ্ঞায়িত কলামগুলি স্বয়ংক্রিয়ভাবে মাইএসকিউএলকে সূচিযুক্ত করা হয়।


2
আমি কি একই মান সহ একটি অনন্য কী এবং প্রাথমিক কী উভয় রাখতে পারি?
সাহায্য

58
@ নিউডহেল্প: আপনার যদি passengersনিম্নলিখিত ক্ষেত্রগুলির সাথে একটি সারণী কল করা থাকে:, (id, first_name, last_name, age, passport_number)আপনি সাধারণত idকলামটি প্রাথমিক কী হিসাবে সেট আপ করতেন । একটি প্রাথমিক কী স্বয়ংক্রিয়ভাবে একটি অনন্য কী। মূল পার্থক্যটি হ'ল আপনার টেবিলে কেবল একটি প্রাথমিক কী থাকতে পারে এবং কলামটিতে NULLমান থাকতে পারে না । idকলামটি সেট আপ করার দরকার নেই UNIQUEকারণ এটি একটি প্রাথমিক কীতে সেট করে, এটি স্বয়ংক্রিয়ভাবে অনন্য হওয়ার গ্যারান্টিযুক্ত ... তারপরে আপনি এটিও সেট passport_numberকরতে UNIQUEপারেন যাতে একাধিক যাত্রী না থাকে ...
ড্যানিয়েল ভ্যাসালো

32
... একই পাসপোর্ট নম্বর পেতে সক্ষম হবে। তবে আপনার পাসপোর্ট নম্বর ছাড়াই কিছু যাত্রী থাকতে পারে (উদাহরণস্বরূপ শিশুরা)। সেক্ষেত্রে NULLআপনি সমস্যা ছাড়াই that কলামটিতে সন্নিবেশ করতে পারেন ।
ড্যানিয়েল ভ্যাসালো 8

2
@ ড্যানিয়েলভাসালো আমাকে মাইএসকিউএল দ্বারা ব্যবহৃত সমার্থক শব্দগুলির মধ্যে আপনি যেভাবে এটি পরিষ্কার করেছেন তা পছন্দ করি।
SIFE

1
অন্যতম সেরা ব্যাখ্যা। অনেক অনেক ধন্যবাদ :-)
রবি হিরানী

61

KEY এবং INDEX সমার্থক শব্দ।

পারফরম্যান্স পরিমাপ এবং এক্সপ্ল্লেইন আপনাকে দেখায় যে অনুপস্থিত সূচকের কারণে কোয়েরিটি অক্ষম is একটি সূচক যুক্ত করা প্রশ্নের কার্যকারিতা উন্নত করতে পারে (তবে এটি টেবিলের পরিবর্তনগুলি ধীর করতে পারে)।

যখন আপনি be কলামটিতে (বা কলামগুলি) মানগুলি অনন্য হতে বাধা দিতে চান আপনার অনন্য ব্যবহার করা উচিত, যাতে সদৃশ মান সন্নিবেশ করানোর প্রচেষ্টা ত্রুটির ফলস্বরূপ ঘটে।

একটি প্রাথমিক কী উভয়ই একটি অনন্য বাধা এবং এটি থেকে বোঝা যায় যে কলামটি বাতিল নয়। এটি প্রতিটি সারিতে একটি পরিচয় দেওয়ার জন্য ব্যবহৃত হয়। বিদেশী কী সীমাবদ্ধতার মাধ্যমে এটি অন্য টেবিলের সাথে যোগদানের জন্য কার্যকর হতে পারে। যদিও কোনও টেবিলের জন্য প্রাইমারী কী রাখা দরকার হয় না এটি সাধারণত একটি ভাল ধারণা।


প্রথম সারিতে প্রতিটি সারিতে একটি পরিচয় দেওয়ার জন্য ব্যবহৃত হয়? আমার অজ্ঞতার জন্য দুঃখিত
সাহায্য

@ নিউডহেল্প: এটি আপনার টেবিলের যে কোনও সারি অনন্যভাবে চিহ্নিত করার উপায় হিসাবে ব্যবহৃত হয়। উদাহরণস্বরূপ, আপনি যদি নিজের টেবিলের একটি নির্দিষ্ট সারি মুছে ফেলতে চান তবে এটি নির্বিঘ্নে এটি সনাক্ত করার কিছু উপায় থাকা কার্যকর যাতে আপনি ভুলক্রমে ভুল সারিটি মুছে ফেলবেন না। এটি অন্য সূচকের সাথে যুক্ত হওয়ার জন্যও এটি দরকারী।
মার্ক Byers

48

প্রাথমিক কীNULL মানগুলিকে অনুমতি দেয় না , তবে অনন্য কীটিNULL মানগুলিকে অনুমতি দেয় ।

আমরা একটি টেবিলে কেবল একটি প্রাথমিক কী ঘোষণা করতে পারি , তবে একটি টেবিলের একাধিক অনন্য কী (কলাম বরাদ্দ) থাকতে পারে।


17

PRIMARY KEYএবং UNIQUE KEYএর বিভিন্ন ফাংশন ব্যতীত একই রকম। প্রাথমিক কীটি সারণি সারিটিকে অনন্য করে তোলে (অর্থাত্, ঠিক একই কী সহ ২ টি সারি থাকতে পারে না)। আপনার কাছে একটি ডাটাবেস সারণীতে 1 টি প্রাথমিক কী থাকতে পারে।

অনন্য কী একটি টেবিল সারিতে টেবিল কলামটিকে অনন্য করে তোলে (অর্থাত, কোনও 2 টেবিল সারিতে একই সঠিক মান থাকতে পারে)। আপনার 1 টিরও বেশি অনন্য কী টেবিল কলাম থাকতে পারে (প্রাথমিক কী এর বিপরীতে যার অর্থ টেবিলের মধ্যে কেবল 1 টি টেবিল কলামটি অনন্য।

INDEXস্বতন্ত্রতাও সৃষ্টি করে। মাইএসকিউএল (উদাহরণস্বরূপ) ইনডেক্স করা কলামের জন্য একটি সূচীকরণ সারণী তৈরি করবে। এইভাবে, সারণী সারি মানটি পুনরুদ্ধার করা সহজ যখন সূচীকরণীয় টেবিল কলামে কোয়েরি করা হয়। অসুবিধাটি হ'ল আপনি যদি অনেকগুলি আপডেটিং / ডিলিটিং / ক্রিয়েট করেন তবে মাইএসকিউএলকে ইনডেক্সিং টেবিলগুলি পরিচালনা করতে হবে (এবং এটি পারফরম্যান্সের বাধা হতে পারে)।

আশাকরি এটা সাহায্য করবে.


এছাড়াও, UNIQUE KEYহতে পারে NULLতবে হতে PRIMARY KEYপারে না NULL
রাফায়

10

অনন্য কী: যে কলামগুলিতে দুটি সারি একই নয়

প্রাথমিক কী: সর্বনিম্ন সংখ্যক কলামের সংকলন যা এক সারণীতে প্রতিটি সারি স্বতন্ত্ররূপে সনাক্ত করতে পারে (অর্থাত্ মূল কী তৈরির সমস্ত কলামে কোনও দুটি সারি সমান নয়)। একটি টেবিলে একাধিক প্রাথমিক কী থাকতে পারে। যদি কোনও অনন্য-কী উপস্থিত থাকে তবে তা সারণীতে প্রাথমিক কী ("" প্রাথমিক কী নয়)। যদি কোনও অনন্য কী উপস্থিত না থাকে তবে একাধিক কলামের মানগুলির জন্য কয়েকটি সারণীতে প্রাথমিক কী গঠন করতে পারে (প্রথম নাম, শেষ নাম, পিতা নাম, মাতৃনাম) এর মতো একটি সারি সনাক্ত করতে হবে।

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


আমি মনে করি আপনি বলতে চাইছেন যে কোনও টেবিলে কেবল একটি পিকে থাকতে পারে
রেজওয়ান ফ্ল্যাভিয়াস পান্ডা

7

প্রাথমিক কী - আমরা টেবিলে একটি টেবিলে কেবল একটি প্রাথমিক কী রাখতে পারি এবং সারণীতে মানগুলি প্রবেশ করার সময় আমরা সেই কলামটি ফাঁকা রাখতে পারি না।

অনন্য কী - আমরা একটি টেবিলে একাধিক অনন্য কী রাখতে পারি এবং যখন আমরা সারণীতে মানগুলি প্রবেশ করি তখন আমরা সেই কলামটি ফাঁকা রেখে দিতে পারি। যখন আমরা প্রাথমিক ও অনন্য কী প্রয়োগ করি তখন কলামটি অনন্য মান (একই নয়) নেয়।


সারণীতে কেবল একটি প্রাথমিক কী আছে, তবে অনন্য কীগুলি একের বেশি।
VIKASH

6

প্রাথমিক কীটি বিভিন্ন টেবিলের সাথে কাজ করতে ব্যবহৃত হয়। এটি রিলেশনাল ডাটাবেসের ভিত্তি। আপনার যদি কোনও বইয়ের ডাটাবেস থাকে তবে 2 টি টেবিল তৈরি করা ভাল - 1) বই এবং 2) আইএনটি প্রাথমিক কী "আইডি" সহ লেখক। তারপরে আপনি লেখকের নামের পরিবর্তে বইগুলিতে আইডি ব্যবহার করেন।

আপনি বারবার এন্ট্রি না করতে চাইলে অনন্য কীটি ব্যবহৃত হয়। উদাহরণস্বরূপ আপনার বইয়ের টেবিলটিতে আপনার শিরোনাম থাকতে পারে এবং প্রতিটি শিরোনামের জন্য কেবল একটি প্রবেশ রয়েছে তা নিশ্চিত হতে চান।


2

অনন্য কী:

  1. একাধিক মান নাল হতে পারে।
  2. কোনও দুটি টুপলের অনন্য কীতে একই মান থাকতে পারে না।
  3. এক বা একাধিক অনন্য কীগুলি প্রাথমিক কী তৈরি করতে একত্রিত করা যেতে পারে তবে বিপরীতে নয়।

প্রাথমিক কী

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