আমি ব্যবহার করা উচিত যখন KEY, PRIMARY KEY, UNIQUE KEYএবং INDEX?
আমি ব্যবহার করা উচিত যখন KEY, PRIMARY KEY, UNIQUE KEYএবং INDEX?
উত্তর:
KEYএবং INDEXমাইএসকিউএল প্রতিশব্দ হয়। তারা একই জিনিস মানে। ডাটাবেসে আপনি তথ্য পুনরুদ্ধারের গতি উন্নত করতে সূচিগুলি ব্যবহার করবেন । একটি সূচক সাধারণত ব্যবহৃত কলাম তৈরি করা হয় JOIN, WHEREএবং ORDER BYক্লজ।
কল্পনা করুন আপনার কাছে একটি টেবিল রয়েছে usersএবং আপনি সর্বশেষ নাম 'স্মিথ' ব্যবহারকারীর জন্য অনুসন্ধান করতে চান। কোনও সূচি না থাকলে ডাটাবেসটিকে টেবিলের সমস্ত রেকর্ডের মধ্য দিয়ে যেতে হবে: এটি ধীর গতির কারণ আপনার ডাটাবেসে আপনার যত বেশি রেকর্ড রয়েছে, ফলাফলটি সন্ধান করতে আরও কাজ করতে হবে। অন্যদিকে, একটি সূচক ডাটাবেসগুলিকে প্রাসঙ্গিক পৃষ্ঠাগুলিতে দ্রুত স্কিপ করতে সহায়তা করবে যেখানে 'স্মিথ' রেকর্ড রয়েছে। এটি যেভাবে আমরা, শেষের নাম অনুসারে কাউকে সন্ধান করার জন্য ফোন বুক ডিরেক্টরিতে যাচ্ছি তার সাথে এটি অনেকটা সাদৃশ্য: আমরা ডিরেক্টরিটি কভার থেকে কভার পর্যন্ত অনুসন্ধান শুরু করি না, যতক্ষণ না আমরা তথ্যটি কিছু ক্রমে সন্নিবেশ করিয়েছি 'এস' পৃষ্ঠায় দ্রুত এড়ানোর জন্য ব্যবহার করুন।
প্রাথমিক কী এবং অনন্য কী একই রকম। একটি প্রাথমিক কী হ'ল একটি কলাম বা কলামগুলির সংমিশ্রণ যা কোনও সারি অনন্যভাবে সনাক্ত করতে পারে। এটি অনন্য কী এর একটি বিশেষ ক্ষেত্রে । একটি সারণীতে সর্বাধিক এক প্রাথমিক কী থাকতে পারে তবে একাধিক অনন্য কী থাকতে পারে। আপনি যখন একটি কলামে একটি অনন্য কী নির্দিষ্ট করেন, কোনও টেবিলের দুটি স্বতন্ত্র সারিতে একই মান থাকতে পারে না।
এছাড়াও নোট করুন যে প্রাথমিক কী বা অনন্য কী হিসাবে সংজ্ঞায়িত কলামগুলি স্বয়ংক্রিয়ভাবে মাইএসকিউএলকে সূচিযুক্ত করা হয়।
passengersনিম্নলিখিত ক্ষেত্রগুলির সাথে একটি সারণী কল করা থাকে:, (id, first_name, last_name, age, passport_number)আপনি সাধারণত idকলামটি প্রাথমিক কী হিসাবে সেট আপ করতেন । একটি প্রাথমিক কী স্বয়ংক্রিয়ভাবে একটি অনন্য কী। মূল পার্থক্যটি হ'ল আপনার টেবিলে কেবল একটি প্রাথমিক কী থাকতে পারে এবং কলামটিতে NULLমান থাকতে পারে না । idকলামটি সেট আপ করার দরকার নেই UNIQUEকারণ এটি একটি প্রাথমিক কীতে সেট করে, এটি স্বয়ংক্রিয়ভাবে অনন্য হওয়ার গ্যারান্টিযুক্ত ... তারপরে আপনি এটিও সেট passport_numberকরতে UNIQUEপারেন যাতে একাধিক যাত্রী না থাকে ...
NULLআপনি সমস্যা ছাড়াই that কলামটিতে সন্নিবেশ করতে পারেন ।
KEY এবং INDEX সমার্থক শব্দ।
পারফরম্যান্স পরিমাপ এবং এক্সপ্ল্লেইন আপনাকে দেখায় যে অনুপস্থিত সূচকের কারণে কোয়েরিটি অক্ষম is একটি সূচক যুক্ত করা প্রশ্নের কার্যকারিতা উন্নত করতে পারে (তবে এটি টেবিলের পরিবর্তনগুলি ধীর করতে পারে)।
যখন আপনি be কলামটিতে (বা কলামগুলি) মানগুলি অনন্য হতে বাধা দিতে চান আপনার অনন্য ব্যবহার করা উচিত, যাতে সদৃশ মান সন্নিবেশ করানোর প্রচেষ্টা ত্রুটির ফলস্বরূপ ঘটে।
একটি প্রাথমিক কী উভয়ই একটি অনন্য বাধা এবং এটি থেকে বোঝা যায় যে কলামটি বাতিল নয়। এটি প্রতিটি সারিতে একটি পরিচয় দেওয়ার জন্য ব্যবহৃত হয়। বিদেশী কী সীমাবদ্ধতার মাধ্যমে এটি অন্য টেবিলের সাথে যোগদানের জন্য কার্যকর হতে পারে। যদিও কোনও টেবিলের জন্য প্রাইমারী কী রাখা দরকার হয় না এটি সাধারণত একটি ভাল ধারণা।
প্রাথমিক কীNULL মানগুলিকে অনুমতি দেয় না , তবে অনন্য কীটিNULL মানগুলিকে অনুমতি দেয় ।
আমরা একটি টেবিলে কেবল একটি প্রাথমিক কী ঘোষণা করতে পারি , তবে একটি টেবিলের একাধিক অনন্য কী (কলাম বরাদ্দ) থাকতে পারে।
PRIMARY KEYএবং UNIQUE KEYএর বিভিন্ন ফাংশন ব্যতীত একই রকম। প্রাথমিক কীটি সারণি সারিটিকে অনন্য করে তোলে (অর্থাত্, ঠিক একই কী সহ ২ টি সারি থাকতে পারে না)। আপনার কাছে একটি ডাটাবেস সারণীতে 1 টি প্রাথমিক কী থাকতে পারে।
অনন্য কী একটি টেবিল সারিতে টেবিল কলামটিকে অনন্য করে তোলে (অর্থাত, কোনও 2 টেবিল সারিতে একই সঠিক মান থাকতে পারে)। আপনার 1 টিরও বেশি অনন্য কী টেবিল কলাম থাকতে পারে (প্রাথমিক কী এর বিপরীতে যার অর্থ টেবিলের মধ্যে কেবল 1 টি টেবিল কলামটি অনন্য।
INDEXস্বতন্ত্রতাও সৃষ্টি করে। মাইএসকিউএল (উদাহরণস্বরূপ) ইনডেক্স করা কলামের জন্য একটি সূচীকরণ সারণী তৈরি করবে। এইভাবে, সারণী সারি মানটি পুনরুদ্ধার করা সহজ যখন সূচীকরণীয় টেবিল কলামে কোয়েরি করা হয়। অসুবিধাটি হ'ল আপনি যদি অনেকগুলি আপডেটিং / ডিলিটিং / ক্রিয়েট করেন তবে মাইএসকিউএলকে ইনডেক্সিং টেবিলগুলি পরিচালনা করতে হবে (এবং এটি পারফরম্যান্সের বাধা হতে পারে)।
আশাকরি এটা সাহায্য করবে.
UNIQUE KEYহতে পারে NULLতবে হতে PRIMARY KEYপারে না NULL।
অনন্য কী: যে কলামগুলিতে দুটি সারি একই নয়
প্রাথমিক কী: সর্বনিম্ন সংখ্যক কলামের সংকলন যা এক সারণীতে প্রতিটি সারি স্বতন্ত্ররূপে সনাক্ত করতে পারে (অর্থাত্ মূল কী তৈরির সমস্ত কলামে কোনও দুটি সারি সমান নয়)। একটি টেবিলে একাধিক প্রাথমিক কী থাকতে পারে। যদি কোনও অনন্য-কী উপস্থিত থাকে তবে তা সারণীতে প্রাথমিক কী ("" প্রাথমিক কী নয়)। যদি কোনও অনন্য কী উপস্থিত না থাকে তবে একাধিক কলামের মানগুলির জন্য কয়েকটি সারণীতে প্রাথমিক কী গঠন করতে পারে (প্রথম নাম, শেষ নাম, পিতা নাম, মাতৃনাম) এর মতো একটি সারি সনাক্ত করতে হবে।
সূচক: ক্যোয়ারীগুলি অনুকূল করতে ব্যবহৃত হয়। যদি আপনি কয়েকটি কলামের ভিত্তিতে ফলাফলগুলি সন্ধান করতে বা বহুবার সারণ করতে যাচ্ছেন (যেমন: বেশিরভাগ লোকেরা শিক্ষার্থীদের নাম দিয়ে নয় এবং তাদের রোল নং দ্বারা নয়, তবে কলামের মানগুলি যদি সমস্ত হয় তবে এটি অপ্টিমাইজড হতে পারে " ইনডেক্সড "উদাহরণস্বরূপ বাইনারি ট্রি অ্যালগরিদমের সাথে।
প্রাথমিক কী - আমরা টেবিলে একটি টেবিলে কেবল একটি প্রাথমিক কী রাখতে পারি এবং সারণীতে মানগুলি প্রবেশ করার সময় আমরা সেই কলামটি ফাঁকা রাখতে পারি না।
অনন্য কী - আমরা একটি টেবিলে একাধিক অনন্য কী রাখতে পারি এবং যখন আমরা সারণীতে মানগুলি প্রবেশ করি তখন আমরা সেই কলামটি ফাঁকা রেখে দিতে পারি। যখন আমরা প্রাথমিক ও অনন্য কী প্রয়োগ করি তখন কলামটি অনন্য মান (একই নয়) নেয়।
প্রাথমিক কীটি বিভিন্ন টেবিলের সাথে কাজ করতে ব্যবহৃত হয়। এটি রিলেশনাল ডাটাবেসের ভিত্তি। আপনার যদি কোনও বইয়ের ডাটাবেস থাকে তবে 2 টি টেবিল তৈরি করা ভাল - 1) বই এবং 2) আইএনটি প্রাথমিক কী "আইডি" সহ লেখক। তারপরে আপনি লেখকের নামের পরিবর্তে বইগুলিতে আইডি ব্যবহার করেন।
আপনি বারবার এন্ট্রি না করতে চাইলে অনন্য কীটি ব্যবহৃত হয়। উদাহরণস্বরূপ আপনার বইয়ের টেবিলটিতে আপনার শিরোনাম থাকতে পারে এবং প্রতিটি শিরোনামের জন্য কেবল একটি প্রবেশ রয়েছে তা নিশ্চিত হতে চান।
অনন্য কী:
প্রাথমিক কী