- 締切済み
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 ・・・について意味がわかりません。 基本的すぎる事なのか参考書に説明がありませんでした^^; 詳しい方おりましたらわかりやすく教えて頂けますと幸いです。 宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- 日吉 龍(@VDSL)
- ベストアンサー率68% (176/258)
どうやらMySQLの話のようですが、"KEY"はINDEXのシノニム(別名)です。 つまり、INDEXと同じということですね。 INDEXが何かはおそらく参考書に記載があるかと思いますが、簡単に言えば検索時の パフォーマンスをあげるために、見出しを付けるということです。 質問の例で言えば主キーがauthor_idで、さらにauthor_nameとauthor_name_kanaに インデックスを付けるということです。author_nameとauthor_name_kanaについて select文で検索をすることが多いということでしょう。
お礼
お返事ありがとうございます。 >つまり、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`) でも同様に使えるという解釈でいいのでしょうか?