SELECT文でアスタリスクを使うな論、とか
え、select * from を使うなって?
確かに一部にそういう風潮があるっぽい。
PHPとMySQLでサイトを制作しているのですが、データの表示の仕方で悩んでいます。
select文でアスタリスク使用
SELECT構文でレコードを選択
SELECT
そういえば最近見たソースも列名をきっちり指定していた。
で、
列名指定のほうが必要な分だけデータを送らず転送量が減るので、または解析のパフォーマンスが上がるのでよい、みたいな話があるが、そんなに変わるの?
いや、経験的にはあんまり変わらん気が。
ってか、もしMySQLであれば、クエリーキャッシュがあるので、なるべく同じ記述のSQL文を発行したほうがいい。
そもそもアプリケーションキャッシュ使えよ!とか。
となると最大公約数的な「SELECT * FROM ~」になるんじゃないのかな、という気がする。
アスタリスクだと列名が分からなくなるみたいな話もあるけど、・・・これはやっぱり取得行のデータを列番号で扱っているから?
連想配列で取得しているから困ったことがない。
だから、アスタリスクを使うな論っていうのがちょっと分らない。
確かに一昔前までは列番号で取得するほうが普通だったし、その時の事情なのかなぁ、と思うのだが。
でも連想配列で引っ張ってこれるのであれば、タイプ数も少なくて済むし、SQL構文のエラーが減って嬉しいのだが。
それと「全列取得」をスタンダードにしておいたほうが修正が少ないからむしろメンテナンス性も上がるかと。
トラックバック URL :
コメント (4)
SELECT * fromについての話…
気軽に書いてたけど、これちゃんと書いておかないとマズイか。 F’s Garage:どのレベルのフレームワークが一番良いのか。 に書いた以下の部分。 確かにJavaBe (more…)
トラックバック by F's Garage — 2008/5/4 日曜日 @ 11:15:32
select * from…
SELECT文でアスタリスクを使うな論、とか (眠る開発屋blog)
DataAdapterなどのデータを一気にフェッチするもので、対象レコート・フィールドが相当多い場 (more…)
トラックバック by NIGHT THE KNIGHTS — 2008/5/5 月曜日 @ 21:45:22
中規模程度の社内業務WebサイトやECサイトの製作に携わっています。
ごく普通に100以上の列&数千万~数億行のデータを扱うので、全カラム指定なんてするととんでもないことになります。
ですので、普段はちゃんとカラム指定しています(もちろん他にもいろいろ気をつけていますが)。
小規模だったり個人的なツール程度であれば、全カラム指定でも問題はありませんが。
コメント by temp — 2009/9/17 木曜日 @ 21:44:53
コメントありがとうございます
僕自身が携わってきた業務では、
幸か不幸か、
100以上の列っていうのはあまりなかったので、
「そういう業務だとそうなるのかね」
という感じで勉強になりますね!
ただ、今後もその手の業務をやることはないのだろうなぁ。。。
まぁどんなに列やデータが多かろうが、
パフォーマンスに支障が出ない限りはラクな手段でやってしまっていい気がするけど
コメント by dev0000 — 2009/9/18 金曜日 @ 2:53:35