Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
あー、なるほどね。「JOINが難しくて避けてるだけなんじゃね?」ってわけか..
[go: Go Back, main page]

2025-06-02

anond:20250602115802

あー、なるほどね。「JOINが難しくて避けてるだけなんじゃね?」ってわけか。

甘い。構造わかってない奴ほどそういう浅い自己放尿をしたがる。

まず前提を修正しろJOINの動きなんてとっくに分かってる。

SQLの実行プラン追って、Nested LoopかHash Joinか、インデックス使うのかフルスキャンになるのか、そのあたりの判断も含めて運用設計に組み込んでる。

こっちはわかった上で避けてんだよ。JOIN理解してないから避けてるんじゃない、JOINの実コスト限界を知ってるから回避してるの。

JOINってのは便利だけど代償がでかい。たとえば、数千万件のトラフィックログに対して、ユーザー属性JOINするとしよう。

属性テーブルが1万件程度でも、JOIN時のI/OCPU負荷は無視できない。結合条件次第ではインデックスも効かなくなる。クエリキャッシュも効かない、結合後にさらGROUP BYやWHERE使えばオプティマイザの想定外地雷も踏む。

こっちはそれを全部経験済み。痛みを知ってるから最適化してる。JOINの怖さを知らない素人が、理解できない設計を「逃げ」と断じるのは自己放尿だな。

それに「JOINがわかりづらい」なんて次元じゃない。JOINなんて構文としては簡単だろ?

問題はそれを巨大なスケール運用したときトラブルを想定してるかどうかだ。

JOINボトルネックになる実例、知らないんだろ?

JOINが原因で1時間かかるクエリになって死ぬとか、JOINが原因でMySQLのtemporary table溢れてswapに突っ込んでサーバ落ちるとか、JOINが原因でインデックス設計ミスってテーブルスキャン発生して数億件走査するとか、そういうのを踏んでから語れ。

わかりやすくしとこうか?

JOINを盲信してるのは、「地雷原を地図だけ見て走り抜けようとしてる奴」と同じ。

JOINを避けてるのは、「地雷があるの知ってるから事前に地ならししてる奴」だよ。

「難しいから避けてる」んじゃない。

危険なの知ってるから、先回りして別ルートを構築してるだけだ。

何も知らないで「逃げてる」ってレッテル貼って自己放尿するの、やめとけ。

お前のJOIN観、浅すぎて逆に危ない。

  • そんな常識はありませんので安心してjoinしてください

    • また自己放尿か? まず君は現場でのパフォーマンス要件を完全に無視している。 理論と実務の乖離が甚だしい。 RDBの第三正規形について何も分かっていない 巨大なusersやitemsテーブルを...

      • 巨大なテーブルを扱っているというのが誤解です 今後巨大なテーブルになるというのも誤解です 本当に巨大なら手元に辞書作るのも無理なので問題ありません

        • 「巨大なテーブルじゃない」「今後も巨大にならない」「だから辞書じゃなくてJOINでも問題ない」 全部甘い。現場知らないヤツの脳内放尿だな。 まず、もしテーブルが小さいならそ...

          • JOINの動きが分かりづらいから自分がわかるエンジニアリングに逃げてるだけなのでは

            • あー、なるほどね。「JOINが難しくて避けてるだけなんじゃね?」ってわけか。 甘い。構造わかってない奴ほどそういう浅い自己放尿をしたがる。 まず前提を修正しろ。JOINの動きなんて...

              • DBにはこだわりは有るようだが、事業全体のコストとかは見えてないエンジニアなんだろうなと。 まあ、少数のシステムしか経験のない飼い殺しエンジニアみたいな感じだろうが。 事業...

                • お前の反論、自分が引き算の美学で事業コストを語れてると勘違いしてるパターン。 でも実態は、事業規模に対する思考スコープの狭さがにじみ出てる。 まず最初に、 「事業全体の...

          • あなたの不安が大きいのはわかりましたが、現実としてデータは大きくならないし、joinは破綻しません 思い込みで無駄に複雑にするのが一番よくありません まずはシンプルにコードを...

            • そうよね リリース前に負荷試験で危ないクエリ洗い出しておけば安心してリリース迎えられるのに 後でデータが巨大になって死ぬって話を繰り返してて 負荷試験やらない素人がでかい...

              • あー、出た出た。「負荷試験で全部検出できる」っていう過信系エンジニアの典型的自己放尿ね。 それっぽい口ぶりしてるけど、中身はかなり雑。 「リリース前に負荷試験で危ないク...

                • 「負荷試験で現実からかけ離れた雑なデータしか作れない素人です」って札を首から下げて生きた方がいいよ RDB扱ってるのにマトモな負荷試験やったことない奴って本当に多いよね

                  • 「負荷試験で現実からかけ離れた雑なデータしか作れない素人です」 それ、お前の妄想上の素人に向かって自己放尿してるだけで、俺の話には一切当たらない。 こっちは負荷試験その...

            • あー、それ完全に自己放尿のマジックワード連打だな。「現実として〜」「破綻しません」「シンプルにしましょう」中身ゼロ。 こっちが挙げた定量的リスク(件数増加、I/O負荷、JOINの...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん