2012-01-03 19 views
-1

私はmysqlインデックスに関してこのような質問をしました。私は索引が検索を高速化するために使用されることを知っていますが、この状況の違いは何ですか? =>いくつか例を挙げましょう。 mysqlクエリSELECT dx FROM BIO LIMIT 0,100 この状況では違いはなく、皆さんの意見を聞きたいと思っています:) 正しく私はすべきです2番目の例で書かれているように、"SELECT name FROM BIO LIMIT 0,100"? 私はうまくインデックスを知らないスピード の検索データを表現するための例では、いくつかの変更を加えましたし、私は私が欲しいものをより正確に言うには... おかげで...mysqlクエリとmysqlインデックスとの比較

を求めていることのために(作成されたインデックス列「名前」)インデックスと名前付きのデータのみを検索する(「SELECT name FROM ...」など)の違いは理解できますか?

+0

私は検索がインデックス付きフィールド上では実行されませんので、それがどんな差分をすることはありませんと思います。 – WordsWorth

+0

あなたが尋ねていることはよく分かりませんが、「索引でカバーされたクエリ」をチェックすることがあります –

+0

ハンドラソケットは興味があるかもしれない別のトピックです –

答えて

0

ご存知のように、指定した両方のクエリを高速化するには、id-columnをインデックスする必要があります。これを行った場合、選択した列のために違いはありません。 id-columnが整数のデータ型の場合は、引用符を削除して、MySQLがwhere節のデータ型を変換するのに苦労しないようにしてください。

SELECT name FROM BIO WHERE id=2; 
SELECT dx FROM BIO WHERE id=2 
+0

はい、データ型について推測します:) – DaHaKa

+0

あなたは欲しい。再度:あなたの与えられた例では、クエリの高速化のために選択された列の索引付けは必要ありません! – bekay

+0

ありがとう、私はそれを聞きたかった、この状況でインデックスを作成する必要があったかどうかは分かりません:) – DaHaKa

0

あなただけのselect句で索引付けされた列の値を取得(およびMIN()またはその列のMAX()を使用していない)、しかし、その後、他のどこにもその列を使用しない場合インデックスは、より高速なクエリを作成しません:

http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html