প্রাথমিক কীটি স্বয়ংক্রিয়ভাবে মাইএসকিউএল এ সূচিযুক্ত?


243

আপনার কি স্পষ্টভাবে একটি সূচি তৈরি করতে হবে, বা প্রাথমিক কীটি সংজ্ঞায়িত করার সময় এটি অন্তর্নিহিত? উত্তরটি কি মাইআইএসএএম এবং ইনোডিবি-র জন্য একই?

উত্তর:


294

প্রাথমিক কী সর্বদা সূচকযুক্ত হয়। এটি মাইআইএসএএম এবং ইনোডিবি-র ক্ষেত্রে একই এবং এগুলি সাধারণত সমস্ত স্টোর ইঞ্জিনের ক্ষেত্রে সত্য যা সূচককে সমর্থন করে।


5
যদি প্রাথমিক কীটি সর্বদা ইন্ডেক্স করা হয় তবে লোকেরা যখন ডেটাবেস আর্কিটেকচার / পারফরম্যান্সের কথা বলছে তখন সবসময় এসকিউএল আগতদের "তাদের ডাটাবেসটি সঠিকভাবে সূচিকৃত হয় তা নিশ্চিত করার" পরামর্শ দেয় কেন?
টিম পিটারসন

35
@ টিম: ফিল্টারিং, গ্রুপিং বা বাছাইয়ের জন্য ব্যবহৃত অন্য কোনও কলামেরও সূচক রয়েছে কিনা তা নিশ্চিত করতে তারা লোকদের বলছে।
এমিল এইচ

15
যোগদানও ভুলে যাবেন না! ইনডেক্সযুক্ত ক্ষেত্রগুলিতে গতি বাড়িয়ে দেয়।
জাস্টজাহান

31

Http://dev.mysql.com/doc/refman/5.0/en/constraint-primary-key.html এর মতে এটি প্রদর্শিত হবে


1
প্রশ্ন জিজ্ঞাসার আগে অনুসন্ধান করে আমি সেই লিঙ্কটি পেয়েছি। তবে মনে হয় না যে এই প্রশ্নটি সম্পর্কে আমাকে বা তার চেয়ে বেশি কিছু বোঝায়।
অ্যালেক্স মিলার 20

এই উত্তরের সাথে লিঙ্ক করা পৃষ্ঠাটি প্রাথমিক কীটিও একটি সূচক কিনা সে সম্পর্কে কিছু বলবে বলে মনে হয় না। @Fyrye এর উত্তরে লিঙ্কযুক্ত পৃষ্ঠাগুলি আরও প্রাসঙ্গিক।
জর্জ হকিন্স

16

যদিও এটি 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

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


11

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


9

আপনাকে প্রাথমিক কীটির জন্য সুস্পষ্টভাবে একটি সূচক তৈরি করতে হবে না ... এটি ডিফল্ট হয়ে যায় is


8

আমার ধারণা এই উত্তরটি

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)

7

সূচকগুলি কলামগুলিতে সর্বাধিক ব্যবহার করা হয় যেখানে ঘন ঘন ব্যবহৃত হয় যেখানে ধারাগুলি এবং যে কোনও ধরণের বাছাইয়ের ক্ষেত্রে যেমন "অর্ডার দ্বারা"। আপনি আরও জটিল ডাটাবেসে কাজ করছেন, তাই কয়েকটি সহজ নিয়ম মনে রাখা ভাল।

  • সূচকগুলি সন্নিবেশ এবং আপডেটগুলি ধীর করে দেয়, তাই আপনি এগুলি সতর্কতার সাথে আপডেট হওয়া কলামগুলিতে সাবধানতার সাথে ব্যবহার করতে চান।
  • সূচিগুলি গতি বাড়ায় যেখানে ক্লজ এবং অর্ডার দেয়। আপনার টেবিলগুলি তৈরি করার সময় আপনার ডেটা কীভাবে ব্যবহার করা হবে সে সম্পর্কে মনে রাখবেন। মনে রাখতে হবে আরও কয়েকটি বিষয়। যদি আপনার টেবিলটি খুব ছোট থাকে, তবে, কেবলমাত্র কয়েকজন কর্মচারী, কোনও সূচীটি বাইরে রেখে দেওয়া এবং কেবল একটি টেবিল স্ক্যান করতে দেওয়া তার চেয়ে খারাপ index

  • সূচকগুলি কেবলমাত্র টেবিলগুলির সাথে কাজে আসে যা প্রচুর সারি করে।

  • আরেকটি বিষয় মনে রাখবেন, এটি আমাদের কর্মচারীর ডাটাবেসের পরিস্থিতিতে একটি কন, এটি হ'ল কলামটি যদি একটি পরিবর্তনশীল দৈর্ঘ্য হয় তবে সূচিগুলি (পাশাপাশি মাইএসকিউএল এর বেশিরভাগ) দক্ষতার সাথে অনেক কম সম্পাদন করে।

  • যোগদানও ভুলে যাবেন না! ইনডেক্সযুক্ত ক্ষেত্রগুলিতে গতি বাড়িয়ে দেয়।


4

প্রাথমিক কী সর্বদা স্বয়ংক্রিয়ভাবে সূচকযুক্ত এবং অনন্য। সুতরাং, অপ্রয়োজনীয় সূচকগুলি তৈরি না করতে সাবধান হন।

উদাহরণস্বরূপ, আপনি যদি একটি সারণী তৈরি করেন

CREATE TABLE mytable (foo INT NOT NULL PRIMARY KEY, bar INT NOT NULL, baz INT NOT NULL,
  UNIQUE(foo), INDEX(foo)) ENGINE=InnoDB;

যেহেতু আপনি প্রাথমিক কীটি সূচী করতে চান এবং এতে কোনও স্বতন্ত্রতা সীমাবদ্ধতা প্রয়োগ করতে চান, আপনি আসলে তিনটি সূচক তৈরি করতে চান foo!


0

যে কোনও প্রাথমিক কী কলামটি প্রাথমিক সূচকগুলির সীমাবদ্ধতার সাথে অন্য সূচিযুক্ত কলাম হিসাবে আনতে পারে।

বেশিরভাগ ব্যবহারের ক্ষেত্রে আমাদের একটি টেবিলে প্রাথমিক কী এবং সূচিযুক্ত কলাম / কলাম উভয়ই প্রয়োজন, কারণ আমাদের টেবিলের প্রশ্নগুলি প্রাথমিক কী নয় এমন কলাম / কলামগুলির উপর ভিত্তি করে সারিগুলি ফিল্টার করতে পারে, সেক্ষেত্রে আমরা সাধারণত সেই কলাম / কলামগুলি সূচী করি may যেমন.

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