আপনার কি স্পষ্টভাবে একটি সূচি তৈরি করতে হবে, বা প্রাথমিক কীটি সংজ্ঞায়িত করার সময় এটি অন্তর্নিহিত? উত্তরটি কি মাইআইএসএএম এবং ইনোডিবি-র জন্য একই?
আপনার কি স্পষ্টভাবে একটি সূচি তৈরি করতে হবে, বা প্রাথমিক কীটি সংজ্ঞায়িত করার সময় এটি অন্তর্নিহিত? উত্তরটি কি মাইআইএসএএম এবং ইনোডিবি-র জন্য একই?
উত্তর:
প্রাথমিক কী সর্বদা সূচকযুক্ত হয়। এটি মাইআইএসএএম এবং ইনোডিবি-র ক্ষেত্রে একই এবং এগুলি সাধারণত সমস্ত স্টোর ইঞ্জিনের ক্ষেত্রে সত্য যা সূচককে সমর্থন করে।
Http://dev.mysql.com/doc/refman/5.0/en/constraint-primary-key.html এর মতে এটি প্রদর্শিত হবে
যদিও এটি 2009 সালে জিজ্ঞাসা করা হয়েছিল আমি প্রাথমিক কীগুলিতে মাইএসকিউএল ডকুমেন্টেশনের একটি প্রকৃত রেফারেন্স পোস্ট করব। http://dev.mysql.com/doc/refman/5.5/en/optimizing-primary-keys.html
প্রাথমিক কী একটা টেবিল জন্য কলাম বা কলাম সেট যে আপনি আপনার সবচেয়ে গুরুত্বপূর্ণ প্রশ্নের ব্যবহার প্রতিনিধিত্ব করে। দ্রুত ক্যোয়ারী পারফরম্যান্সের জন্য এটির একটি সম্পর্কিত সূচক রয়েছে
মাইএসকিউএল 5.0 রেফারেন্সের জন্য দেখুন: http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html
সর্বাধিক মাইএসকিউএল সূচক ( প্রাথমিক কী , ইউনিক, আইএনডিএক্স এবং ফুলটেক্সট) বি-ট্রিগুলিতে সংরক্ষণ করা হয়। ব্যতিক্রমগুলি হল যে স্থানিক ডেটা ধরণের সূচীগুলি আর-ট্রি ব্যবহার করে এবং স্মৃতি সারণীগুলি হ্যাশ সূচকগুলিও সমর্থন করে।
প্রাথমিক কীটি মাইআইএসএএম এবং ইনোডিবি উভয়ের জন্য স্পষ্টতই সূচকযুক্ত। আপনি প্রাথমিক কী ব্যবহার করে এমন একটি ক্যোয়ারিতে এক্সপ্ল্যান ব্যবহার করে এটি যাচাই করতে পারেন।
আমার ধারণা এই উত্তরটি
mysql> create table test(id int primary key, s varchar(20));
Query OK, 0 rows affected (0.06 sec)
mysql> show indexes from test \G
*************************** 1. row ***************************
Table: test
Non_unique: 0
Key_name: PRIMARY
Seq_in_index: 1
Column_name: id
Collation: A
Cardinality: 0
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:
1 row in set (0.00 sec)
সূচকগুলি কলামগুলিতে সর্বাধিক ব্যবহার করা হয় যেখানে ঘন ঘন ব্যবহৃত হয় যেখানে ধারাগুলি এবং যে কোনও ধরণের বাছাইয়ের ক্ষেত্রে যেমন "অর্ডার দ্বারা"। আপনি আরও জটিল ডাটাবেসে কাজ করছেন, তাই কয়েকটি সহজ নিয়ম মনে রাখা ভাল।
সূচিগুলি গতি বাড়ায় যেখানে ক্লজ এবং অর্ডার দেয়। আপনার টেবিলগুলি তৈরি করার সময় আপনার ডেটা কীভাবে ব্যবহার করা হবে সে সম্পর্কে মনে রাখবেন। মনে রাখতে হবে আরও কয়েকটি বিষয়। যদি আপনার টেবিলটি খুব ছোট থাকে, তবে, কেবলমাত্র কয়েকজন কর্মচারী, কোনও সূচীটি বাইরে রেখে দেওয়া এবং কেবল একটি টেবিল স্ক্যান করতে দেওয়া তার চেয়ে খারাপ index
সূচকগুলি কেবলমাত্র টেবিলগুলির সাথে কাজে আসে যা প্রচুর সারি করে।
আরেকটি বিষয় মনে রাখবেন, এটি আমাদের কর্মচারীর ডাটাবেসের পরিস্থিতিতে একটি কন, এটি হ'ল কলামটি যদি একটি পরিবর্তনশীল দৈর্ঘ্য হয় তবে সূচিগুলি (পাশাপাশি মাইএসকিউএল এর বেশিরভাগ) দক্ষতার সাথে অনেক কম সম্পাদন করে।
যোগদানও ভুলে যাবেন না! ইনডেক্সযুক্ত ক্ষেত্রগুলিতে গতি বাড়িয়ে দেয়।
প্রাথমিক কী সর্বদা স্বয়ংক্রিয়ভাবে সূচকযুক্ত এবং অনন্য। সুতরাং, অপ্রয়োজনীয় সূচকগুলি তৈরি না করতে সাবধান হন।
উদাহরণস্বরূপ, আপনি যদি একটি সারণী তৈরি করেন
CREATE TABLE mytable (foo INT NOT NULL PRIMARY KEY, bar INT NOT NULL, baz INT NOT NULL,
UNIQUE(foo), INDEX(foo)) ENGINE=InnoDB;
যেহেতু আপনি প্রাথমিক কীটি সূচী করতে চান এবং এতে কোনও স্বতন্ত্রতা সীমাবদ্ধতা প্রয়োগ করতে চান, আপনি আসলে তিনটি সূচক তৈরি করতে চান foo
!
যে কোনও প্রাথমিক কী কলামটি প্রাথমিক সূচকগুলির সীমাবদ্ধতার সাথে অন্য সূচিযুক্ত কলাম হিসাবে আনতে পারে।
বেশিরভাগ ব্যবহারের ক্ষেত্রে আমাদের একটি টেবিলে প্রাথমিক কী এবং সূচিযুক্ত কলাম / কলাম উভয়ই প্রয়োজন, কারণ আমাদের টেবিলের প্রশ্নগুলি প্রাথমিক কী নয় এমন কলাম / কলামগুলির উপর ভিত্তি করে সারিগুলি ফিল্টার করতে পারে, সেক্ষেত্রে আমরা সাধারণত সেই কলাম / কলামগুলি সূচী করি may যেমন.