1. ホーム
  2. sql

[解決済み] どちらが速いか/ベストか?SELECT * または SELECT column1, colum2, column3, etc.

2022-04-24 19:44:28

質問

という話を聞いたことがあります。 SELECT * は、一般的にSQLコマンドを記述する際に使用するのは良くない習慣です。 SELECT カラムが必要です。

が必要な場合 SELECT テーブルのすべてのカラムに

SELECT * FROM TABLE

または

SELECT column1, colum2, column3, etc. FROM TABLE

この場合、効率は本当に重要なのでしょうか?私なら SELECT * というのは、本当にすべてのデータが必要なら、内部的にはもっと最適なのですが、データベースのことを全く理解せずに言っています。

この場合のベストプラクティスを知りたいのですが。

UPDATEしてください。 私が本当にそうする唯一の状況であることを明記すべきかもしれません。 欲しい を実行します。 SELECT * は、1つのテーブルからデータを選択するとき、新しいカラムが追加されても、すべてのカラムを常に取得する必要があることが分かっている場合です。

しかし、私が見た反応を見ると、これはまだ悪いアイデアのように思われ SELECT * というのは、私がこれまで考えていたよりもずっと多くの技術的な理由で、決して使われてはならないからです。

解決方法は?

特定のカラムを選択した方が良い理由として、SQL Serverがテーブルのデータを照会するのではなく、インデックスからデータにアクセスできる確率が高くなることが挙げられます。

それについて書いた記事はこちらです。 selectクエリがインデックスカバレッジを悪くする本当の理由

また、将来的にテーブルスキーマを変更しても、データを消費するコードは同じデータ構造を取得するため、変更に対する脆弱性も低くなります。