質問: sql文について phpとmysqlの参考書を購入したのですがわからないことがあり 質問させてください。 参考書のサンプルとしてsample.sqlには以下の内容があります。 create table if not exists `author` ( `author_id` int(11) not null auto_increment, `author_name` varchar(255) not null default '', `author_name_kana` varchar(255) not null default '', `state` int(11) not null default '0', `description` text not null, primary key (`author_id`), key `author_name` (`author_name`), key `author_name_kana` (`author_name_kana`) ) engine=myisam default charset=utf8; primary key (`author_id`),まではわかるのですがそれ以下の key ・・・とはなんのためにあり何をするのでしょうか? primary key・・・は主キーをauthor_idにするという設定かと 思うのですがkey ・・・について意味がわかりません。 基本的すぎる事なのか参考書に説明がありませんでした^^; 詳しい方おりましたらわかりやすく教えて頂けますと幸いです。 宜しくお願い致します。
回答: どうやらmysqlの話のようですが、"key"はindexのシノニム(別名)です。 つまり、indexと同じということですね。 indexが何かはおそらく参考書に記載があるかと思いますが、簡単に言えば検索時の パフォーマンスをあげるために、見出しを付けるということです。 質問の例で言えば主キーがauthor_idで、さらにauthor_nameとauthor_name_kanaに インデックスを付けるということです。author_nameとauthor_name_kanaについて select文で検索をすることが多いということでしょう。