2009-07-26 13 views
-2

以下は、mysqlデータベースにテーブルを作成するコードです。MYSQLはコマンドの最適化を作成しますか?

CREATE TABLE IF NOT EXISTS `hightraffic` (
    `id` int(11) NOT NULL auto_increment, 
    `videoID` int(11) NOT NULL default '0', 
    `userid` int(11) NOT NULL, 
    `name` varchar(255) NOT NULL default '', 
    `title` int(11) NOT NULL default '0', 
    `date` datetime NOT NULL default '0000-00-00 00:00:00', 
    PRIMARY KEY (`id`), 
    KEY `videoID ` (`videoID `), 
    KEY `date` (`date`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=342 ; 

私は、次の知りたい:KEYである

  1. 何、それ主キーまたはそのインデックスのですか?
  2. なぜビデオIDと日付にKEYが適用されていますか?
  3. videoIdと日付にKEYが存在しない場合は、パフォーマンス上の問題がありますか、その場合はパフォーマンス上のメリットとその理由は何ですか?
+2

クレイジーなアイデアがありますが、(実際またはSQLへの一般的な背景説明)MySQLのオンラインドキュメントを読みたいと思うかもしれない - それは、このようなSOとしてはるかに高速コミュニティリソースよりも、これらの問題をクリア点灯するはずです。 –

答えて

4
  1. KEYは単なるインデックスです。
  2. これはあなたのスキーマです。質問するには奇妙な質問です。あなたはどこかでこれをオンラインで見つけましたか? database indexesにお読みください。
  3. これらの値にキー(索引)がない場合、それらの列でフィルタリングするときに索引を利用することはできません。上記のリンクを参照してください。