回答:
主キーには常にインデックスが付けられます。これはMyISAMとInnoDBでも同じで、通常、インデックスをサポートするすべてのストレージエンジンに当てはまります。
http://dev.mysql.com/doc/refman/5.0/en/constraint-primary-key.htmlによると、これは暗黙的であるように見えます
これは2009年に尋ねられましたが、主キーに関するMySQLのドキュメントへの実際の参照を投稿すると思いました。 http://dev.mysql.com/doc/refman/5.5/en/optimizing-primary-keys.html
テーブルの主キーは、最も重要なクエリで使用する列または列のセットを表します。クエリのパフォーマンスを高速化するために、関連するインデックスがあります
MySQL 5.0のリファレンスについては、http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.htmlを参照してください。
ほとんどのMySQL インデックス(PRIMARY KEY、UNIQUE、INDEX、およびFULLTEXT)はBツリーに格納されます。例外は、空間データタイプのインデックスがRツリーを使用すること、およびMEMORYテーブルもハッシュインデックスをサポートすることです。
MyISAMとInnoDBの両方で、主キーに暗黙的にインデックスが付けられます。これを確認するには、主キーを使用するクエリでEXPLAINを使用します。
これが答えだと思います
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)
インデックスは、where句や「order by」などのあらゆる種類の並べ替えで頻繁に使用される列に最適です。より複雑なデータベースで作業している可能性があるため、いくつかの単純なルールを覚えておくことをお勧めします。
インデックスはwhere句を高速化し、並べ替えます。テーブルを構築するときに、データがどのように使用されるかを忘れないでください。他に覚えておくべきことがいくつかあります。テーブルが非常に小さい場合、つまり従業員が数人だけの場合は、インデックスを使用せずにテーブルスキャンを実行するよりも、インデックスを使用する方が適切です。
インデックスが本当に役立つのは、行数が多いテーブルだけです。
覚えておくべきもう1つのことは、従業員のデータベースの状況での短所は、列が可変長の場合、インデックス(およびほとんどのMySQL)の効率が大幅に低下することです。
参加も忘れずに!インデックス付き結合フィールドにより、処理速度が向上します。