• 締切済み

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 ・・・について意味がわかりません。 基本的すぎる事なのか参考書に説明がありませんでした^^; 詳しい方おりましたらわかりやすく教えて頂けますと幸いです。 宜しくお願い致します。

みんなの回答

回答No.1

どうやらMySQLの話のようですが、"KEY"はINDEXのシノニム(別名)です。 つまり、INDEXと同じということですね。 INDEXが何かはおそらく参考書に記載があるかと思いますが、簡単に言えば検索時の パフォーマンスをあげるために、見出しを付けるということです。 質問の例で言えば主キーがauthor_idで、さらにauthor_nameとauthor_name_kanaに インデックスを付けるということです。author_nameとauthor_name_kanaについて select文で検索をすることが多いということでしょう。

参考URL:
http://dev.mysql.com/doc/refman/4.1/ja/indexes.html
dcx147
質問者

お礼

お返事ありがとうございます。 >つまり、INDEXと同じということですね。 >パフォーマンスをあげるために、見出しを付けるということです。 そのようなことができるのですね。非常に参考になります! KEY `author_name` (`author_name`), KEY `author_name_kana` (`author_name_kana`) は参考URLの通り INDEX `index_name` (`author_name`), INDEX `index_name_kana` (`author_name_kana`) でも同様に使えるという解釈でいいのでしょうか?

関連するQ&A