2011-01-15 10 views
1

を「選択」:MySQLの - それはのようにテーブルからすべてのフィールドを選択するために、より高速だ場合、私は思っていたスピード

SELECT * 

またはあなたが本当に必要なものだけを選択します。

テーブルを想定し
SELECT field1, field2, field3, field4, field5... 

約10のフィールドがあり、この操作には5または6しか必要ありません。

+0

[選択*を使用しない理由は何ですか?](http://stackoverflow.com/questions/321299/what-is-the-reason-not-to-use-select) –

答えて

3

可能な限り、正確なフィールドを選択する方が早いです。あなたの直感は正しいです:無駄な機械の時間が実際に無駄になる可能性が高いと考えられるものはありますが、その大きさはいつも問題の対象です。この特定の例は、(ORMを介して)生成されたコードがその人気が高い理由の1つです! ORMでは、ほとんどの基本的で反復的な最適化作業はORM自体の手に委ねられており、カスタムの手書きクエリはルールではなく例外です。

2

フィールドを選択すると、スピードに大きな影響を与える可能性があります。 select *を実行すると、フィールドの一部がBLOBまたはTEXTの場合、大きな負の影響があります。 this documentation pageをチェックし、「*」を使用しないでください。

3

正確なフィールドを選択する必要があります。そうしないと、テーブルを変更するときにパフォーマンスが大幅に低下する可能性があります。あなたがそのテーブルにBLOBを追加することを決めた場合、どうなるか考えてみてください。誤ってメガバイトの不要なデータを選択する可能性があります。

微妙なニュアンスがあります。クエリキャッシュのクエリ数が限られているほうがよい場合もあります。フィールド1、フィールド2、フィールド3のみが必要な場合もあれば、フィールド4でもフィールド4が必要な場合もあります。あなたが最初の3つだけを必要としたとしても、常に1,2,3、および4を選択することをお勧めします。を使用すると、*です。

関連する問題