タグ

ブックマーク / tgk.hatenadiary.org (1)

  • select * は禁じ手で、必ず列名を列挙すべしとされている理由 - 極北データモデリング

    select * from ... と書いてはダメ、たとえ全列取得する場合でも select a, b, c, d from ... と書くのが常識、という話をずいぶん前に聞いたことがあって、意味がわからないので人力検索に投げてみた。 いただいた回答を整理しておく。 テーブル内の一部の列を参照したい場合 例えばクライアント側では1列しか見ないのにワイルドカードで全列取得することには、パフォーマンス上の問題がある。 select * from ... でも select a from ... でもディスクI/Oのコストは基的に変わらないが*1、それ以外のところに問題がある。 ネットワークの問題。DBサーバからクライアントに転送するデータが無駄に大きくなる メモリの問題。DBMSのデータキャッシュやOSのファイルキャッシュが無駄遣いされる テーブルの全ての列を参照したい場合 全列取得したい場

    select * は禁じ手で、必ず列名を列挙すべしとされている理由 - 極北データモデリング
  • 1