মাইএসকিউএল টেবিল তৈরি করার সময় প্রাইমারি, ইউনিক, আইএনডিএক্স এবং ফুলটেক্সটের মধ্যে পার্থক্যগুলি কী?
আমি তাদের কীভাবে ব্যবহার করব?
মাইএসকিউএল টেবিল তৈরি করার সময় প্রাইমারি, ইউনিক, আইএনডিএক্স এবং ফুলটেক্সটের মধ্যে পার্থক্যগুলি কী?
আমি তাদের কীভাবে ব্যবহার করব?
উত্তর:
KEY বা INDEX একটি সাধারণ অ-অনন্য সূচককে বোঝায়। সূচকের জন্য স্বতন্ত্র মানগুলি অনুমোদিত, সুতরাং সূচীতে সূচকের সমস্ত কলামে অভিন্ন মানের সারি থাকতে পারে। এই সূচকগুলি আপনার ডেটাতে কোনও বাধা প্রয়োগ করে না তাই এগুলি কেবল অ্যাক্সেসের জন্য ব্যবহার করা হয় - সমস্ত রেকর্ড স্ক্যান না করে দ্রুত রেকর্ডের নির্দিষ্ট পরিসরে দ্রুত পৌঁছানোর জন্য।
অনন্য একটি সূচককে বোঝায় যেখানে সূচকের সমস্ত সারি অনন্য হতে হবে। এটি হ'ল, একই সারিতে এই সূচীতে সমস্ত কলামের জন্য অন্য সারি হিসাবে অভিন্ন নন-নুল মান থাকতে পারে না। পাশাপাশি নির্দিষ্ট রেকর্ডের সীমাতে পৌঁছানোর জন্য অনন্য সূচিগুলি ব্যবহার করা যেতে পারে ডেটাগুলিতে সংযোজন প্রয়োগ করতে, কারণ ডাটা সন্নিবেশ করানো বা আপডেট করার সময় ডাটাবেস সিস্টেম পৃথক মান নিয়ম ভাঙতে দেয় না।
আপনার ডাটাবেস সিস্টেমটি একটি অনন্য সূচককে কলামগুলিতে প্রয়োগ করার অনুমতি দিতে পারে যা নুল মানগুলিকে অনুমতি দেয়, এক্ষেত্রে দুটি সারি অভিন্ন হওয়ার অনুমতি দেওয়া হয় যদি উভয়টিতে একটি নুল মান থাকে (এখানে যুক্তিটি হ'ল NULL নিজের সমান নয়)। আপনার অ্যাপ্লিকেশন উপর নির্ভর করে, তবে আপনি এটি অনাকাঙ্ক্ষিত দেখতে পাবেন: আপনি যদি এটি প্রতিরোধ করতে চান, তবে আপনাকে প্রাসঙ্গিক কলামগুলিতে NULL মানগুলি অস্বীকার করা উচিত।
প্রাথমিক হ'ল একটি অনন্য সূচকের মতো কাজ করে, এটিকে বাদ দিয়ে সর্বদা 'PRIMARY' নামকরণ করা হয় এবং একটি টেবিলে কেবল একটি থাকতে পারে (এবং সর্বদা একটি হওয়া উচিত ; যদিও কিছু ডাটাবেস সিস্টেম এটি প্রয়োগ করে না)। প্রাথমিক সূচকটি সারণীতে যে কোনও সারি স্বতন্ত্ররূপে সনাক্তকরণের প্রাথমিক মাধ্যম হিসাবে লক্ষ্য করা হয়, সুতরাং অনন্যতার বিপরীতে এটি কোনও কলামে ব্যবহার করা উচিত নয় যা নুল মানকে অনুমতি দেয় allow আপনার প্রাথমিক সূচকটি সর্বনিম্ন সংখ্যক কলামে থাকা উচিত যেগুলি একটি সারি স্বতন্ত্রভাবে সনাক্ত করতে যথেষ্ট sufficient প্রায়শই এটি একটি অনন্য স্ব-বর্ধিত সংখ্যা সম্বলিত একটি কলামই থাকে, তবে অন্য কোনও কিছু যদি এমন একটি সারি সনাক্ত করতে পারে যা দেশের তালিকায় "দেশকোড" এর মতো হয় তবে আপনি তার পরিবর্তে এটি ব্যবহার করতে পারেন।
কিছু ডাটাবেস সিস্টেম (যেমন মাইএসকিউএল এর ইনোডিবি) প্রাইমারি সূচীতে প্রদর্শিত হয় সেভাবে ডিস্কে একটি টেবিলের রেকর্ড সংরক্ষণ করবে।
সম্পূর্ণ লিখা ইনডেক্সগুলি উপরের সমস্ত থেকে আলাদা এবং তাদের ব্যবহারের ডাটাবেস সিস্টেমের মধ্যে উল্লেখযোগ্যভাবে পার্থক্য রয়েছে। ফুলটেক্স ইনডেক্সগুলি কেবলমাত্র উপরের তিনটি থেকে পৃথক ম্যাচ () / এজিআইএনএসটি () ধারা দ্বারা সম্পূর্ণ পাঠ্য অনুসন্ধানের জন্য দরকারী - যা সাধারণত বি-ট্রি ব্যবহার করে অভ্যন্তরীণভাবে প্রয়োগ করা হয় (বাম সর্বাধিক কলাম থেকে নির্বাচন, বাছাই বা রেঞ্জের অনুমতি দেয়) বা হ্যাশ সারণী (বাম সর্বাধিক কলাম থেকে নির্বাচনের অনুমতি দেওয়া হচ্ছে)।
অন্যান্য সূচকের ধরণগুলি সাধারণ উদ্দেশ্যে, যেখানে একটি সম্পূর্ণ পাঠ্যসূচী বিশেষায়িত হয়, এটি এটি একটি সংকীর্ণ উদ্দেশ্যে কাজ করে: এটি কেবলমাত্র "সম্পূর্ণ পাঠ্য অনুসন্ধান" বৈশিষ্ট্যের জন্য ব্যবহৃত হয়।
এই সমস্ত সূচকে তাদের একাধিক কলাম থাকতে পারে।
ফুলটেক্সট বাদে কলামের ক্রমটি তাৎপর্যপূর্ণ: সূচিটি কোনও প্রশ্নের ক্ষেত্রে কার্যকর হওয়ার জন্য, ক্যোয়ারিকে অবশ্যই বাম দিক থেকে সূচক থেকে কলামগুলি ব্যবহার করতে হবে - এটি কেবলমাত্র দ্বিতীয়, তৃতীয় বা চতুর্থ অংশ ব্যবহার করতে পারে না সূচক, যদি না এটি স্থিত মানের সাথে মেলে সূচীতে আগের কলামগুলিও ব্যবহার করে। (সম্পূর্ণ প্রশ্নের সূচকটি কোনও প্রশ্নের জন্য কার্যকর হওয়ার জন্য, ক্যোয়ারিতে অবশ্যই সূচীর সমস্ত কলাম ব্যবহার করা উচিত ))
NOT NULL
। মাইএসকিউএল রিপোর্ট করবে show columns
যে অন্য কোনও প্রাথমিক কী সংজ্ঞায়িত না হলে একটি নন-নুল অনন্য কী একটি প্রাথমিক কী।
এগুলি সব ধরণের সূচক।
প্রাথমিক: অবশ্যই অনন্য হতে হবে, একটি সূচক হতে পারে (সম্ভবত) দৈহিক সূচী প্রতি টেবিলে কেবল একটি হতে পারে।
অনন্য: যেমনটি বলে। এই মানের টিপল সহ আপনার একাধিক সারি থাকতে পারে না। নোট করুন যেহেতু একটি অনন্য কী একাধিক কলামের বেশি হতে পারে, এর অর্থ এই নয় যে সূচকের প্রতিটি পৃথক কলাম অনন্য is তবে এই কলামগুলিতে প্রতিটি মানের সমন্বয় অনন্য।
সূচি: এটি যদি প্রাথমিক বা অনন্য না হয় তবে এটি সারণিতে সন্নিবেশিত মানগুলিকে সীমাবদ্ধ করে না, তবে এটি তাদের আরও দক্ষতার সাথে দেখাতে দেয়।
ফুলটেক্সট: সূচকের আরও বিশদযুক্ত ফর্ম যা সম্পূর্ণ পাঠ্য সন্ধানের অনুমতি দেয়। এটিকে (প্রয়োজনীয়ভাবে) নির্দিষ্ট কলামে প্রতিটি "শব্দের" জন্য "সূচক" তৈরি হিসাবে ভাবেন।
আমি মনে করি এটি ভালভাবে কভার করা হয়েছে, নিম্নলিখিতগুলি বাদে সম্ভবত:
সরল KEY
/ INDEX
(বা অন্যথায় বলা হয় SECONDARY INDEX
) কর্মক্ষমতা বাড়ায় যদি চূড়ান্ততা যথেষ্ট হয়। এই বিষয়ে, সাধারণ সুপারিশটি হ'ল যদি ফলাফল নির্ধারিত ফলাফলের রেকর্ডগুলির পরিমাণ যদি মূল সূচিপত্রের মোট রেকর্ডের 20% ছাড়িয়ে যায় তবে সূচকটি অকার্যকর হবে ff অনুশীলনে প্রতিটি স্থাপত্য পৃথক হবে তবে, ধারণাটি এখনও সঠিক।
মাধ্যমিক সূচকগুলি (এবং এটি মাইএসকিএলের সাথে অত্যন্ত সুনির্দিষ্ট) প্রাথমিক কী থেকে সম্পূর্ণ পৃথক এবং পৃথক বস্তু হিসাবে দেখা উচিত নয়। আসলে, উভয়কে যৌথভাবে ব্যবহার করা উচিত এবং একবার এই তথ্যটি জানা হয়ে গেলে, মাইএসকিএল ডিবিএতে একটি অতিরিক্ত সরঞ্জাম সরবরাহ করে: মাইএসকিএল-এ সূচীগুলি প্রাথমিক কী এম্বেড করে। এটি তাত্পর্যপূর্ণ কর্মক্ষমতা উন্নতির দিকে পরিচালিত করে, বিশেষত যখন চতুরতার সাথে সেখানে বর্ণিত যেমন অন্তর্নিহিত আচ্ছাদন সূচকগুলি তৈরি করে
আপনার ডেটা হওয়া উচিত বলে মনে হলে UNIQUE
একটি অনন্য সূচক ব্যবহার করুন। আপনি এটি বিকল্প হিসাবে বিবেচনা করতে পারেন (উদাহরণস্বরূপ, এটি প্রয়োগের স্তরে এটি কাজ করে) এবং এটি একটি সাধারণ সূচক করে দেয় তবে এটি আসলে মাইএসকিএলের জন্য একটি গ্যারান্টি উপস্থাপন করে যা প্রতিটি সারিটি অনন্য, যা ঘটনাক্রমে একটি কার্যকারিতা সুবিধা সরবরাহ করে।
আপনি কেবল ব্যবহার করতে পারেন FULLTEXT
(বা অন্যথায় ডাকা হয়)SEARCH INDEX
ইনোডব (মাইএসকিউএল 5.6.4 এবং উপরে) এবং মাইসাম ইঞ্জিনগুলির সাথে )
FULLTEXT
উপর CHAR
, VARCHAR
এবং TEXT
কলাম ধরনেরFULLTEXT
সূচক কেবল একটি সূচক তৈরির চেয়ে অনেক বেশি জড়িত। এখানে বেশ কয়েকটি সিস্টেম সারণী তৈরি করা হয়েছে, সম্পূর্ণ পৃথক ক্যাচিং সিস্টেম এবং কিছু নির্দিষ্ট নিয়ম এবং অনুকূলিতকরণ প্রয়োগ করা হয়েছে। দেখুন http://dev.mysql.com/doc/refman/5.7/en/fulltext-restrictions.html এবং http://dev.mysql.com/doc/refman/5.7/en/innodb-fulltext-index.html
SPATIAL
: স্ট্যাকওভারফ্লো.com