可能性の重複:fooからselect *はどのような意味を持っていますか?
:より多くのDBAの洞察力を持つ人々からこれを聞いて興味が、どのようなパフォーマンスの影響はあなたのようなクエリを見たときからアプリケーション顔をし
Can select * usage ever be justified?
select * from some_large_table;
インデックスがbでないため、フルテーブルスキャンを実行する必要があります私はO表記を話しているならば、ここでNは表のサイズであるここでO(N)を話していると私は信じています。これは通常、最適な動作ではないと考えられていますか?あなたが本当に特定の時間にテーブルからすべてを必要とする場合はどうなりますか?はい、ページネーションなどのツールがありますが、ここではデータベースの観点から厳密に話しています。このようなふるまいは、通常、ぶつかるのですか?
通常、データベースの場合、大きなO表記はディスクIOの数を指し、算術演算ではありません –
パフォーマンスの影響を除いて、決して 'select * from ... 'を使用することはお勧めしません。どうして?あなたの質問は将来の証明ではありません。今日は4列あると想像してください。クエリから4つの列が必要です。将来、ある列が追加または削除されたり、2つの列がその表に入れ替わったりすることを想像してみてください。すべての地獄が緩んでいる可能性があります。ですから、あなたが必要とする全ての列を明示的に '選択する '方が良いでしょう。それ以上はない。 – darioo
@アーメンTsirunyan:議論のポイント。うまく設計され、チューニングされたサーバーは常にインデックスをメモリに保持します。したがって、ディスクI/Oが実行されていなくても、B-Treeインデックスから何かをフェッチするにはO(logN)がかかります。 – zerkms