私はこれを読んできましたが、明示的に列名を一覧表示する方が良いことを理解しました。Select * vsすべての列名を選択
のは、(私の本当の人生のシナリオに非常に近い)次のシナリオをふりましょう:
新しい列は、私はすべてのBLOBデータに
- を使用していない
を追加することはありません私は実際にすべての列を返すようにしたいです
- 私は約1億4000万行のテーブルを持っています
- 私は実際に私はすべての結合と誰もが下記
- クエリは、私は、クエリを実行する方法を文字通り正確ではないだろう使用していないすべての1.4億の行が必要ですが、ちょうど私が引数
- のためにやるふりをすることはできません。 。
次のクエリの性能差はあります:
select every_column_name
from table
編集対
select *
from table
:私は、このトピックの万の質問があります理解しています。この特定のシナリオでは、パフォーマンスの違いはありますか? select *
はまだ悪いですか両方のクエリが同じパフォーマンスを持っていますか?
explain
を使用した結果に基づいて、この特定のケースでは違いはありません。
特に「特別な」クエリでは、 'select * 'の使用には問題ありません。いくつかのリスクがありますが、あなたはそれらを理解しているようですので、あなたの特定の状況で最も効果的なものを判断することができます。 –