まず、もしテーブルが小さいならそれこそJOINなんてそもそも無駄。
usersが1万件くらいのサイズなら、最初に全件引いて辞書にしておけば、処理時は全部O(1)。
一方JOINはどうなる?SQL構文パース、オプティマイザ、プランの生成と実行、インデックス参照、場合によってはソート・一時テーブル、何重にもコストがかかる。JOIN使うのは、全力で自己放尿してるのと同じ。
「今後も巨大にはならない」
これ、現実逃避の典型な。開発初期で小さくても、プロダクトってのは使われてナンボ。使われればデータは自然に増える。
さらに「本当に巨大なら辞書は無理」って言ってるけど、じゃあJOINならいけると?
脳ミソの冷却ちゃんと回ってるか?
JOINってのは重いんだよ。リレーショナル演算のコスト、現場でまともに見積もったことあるか?
JOINするたびに何十万、何百万件ってレコード舐めて、インデックス使って、それでもI/Oボトルネック起きる。
そういうの避けるためにRedisとか列指向DBとかプリマテリアライズするんだろ。JOINは最適解じゃない、最後の逃げだよ。
結局、JOINを正当化する理由が「JOIN以外知らない」ってだけじゃねえの?
設計手段を学ばず、「それしか知らない」ことを自信に変えるな。
知識の不足を理屈で補うのは無理がある。JOINを使うなとは言わん。でも、JOINが最適って言うなら、それ相応の読み、キャッシュ設計、オプティマイザとの対話が必要だ。
DBのサイズで見栄を張るのやめてもらっていいですか論破
頭大丈夫か? userとかitemとかいうテーブルは普通でけぇんだよ そんな常識もわからねーからお前はハッタショと言われる
そんな常識はありませんので安心してjoinしてください
また自己放尿か? まず君は現場でのパフォーマンス要件を完全に無視している。 理論と実務の乖離が甚だしい。 RDBの第三正規形について何も分かっていない 巨大なusersやitemsテーブルを...
巨大なテーブルを扱っているというのが誤解です 今後巨大なテーブルになるというのも誤解です 本当に巨大なら手元に辞書作るのも無理なので問題ありません
「巨大なテーブルじゃない」「今後も巨大にならない」「だから辞書じゃなくてJOINでも問題ない」 全部甘い。現場知らないヤツの脳内放尿だな。 まず、もしテーブルが小さいならそ...
JOINの動きが分かりづらいから自分がわかるエンジニアリングに逃げてるだけなのでは
あー、なるほどね。「JOINが難しくて避けてるだけなんじゃね?」ってわけか。 甘い。構造わかってない奴ほどそういう浅い自己放尿をしたがる。 まず前提を修正しろ。JOINの動きなんて...
DBにはこだわりは有るようだが、事業全体のコストとかは見えてないエンジニアなんだろうなと。 まあ、少数のシステムしか経験のない飼い殺しエンジニアみたいな感じだろうが。 事業...
お前の反論、自分が引き算の美学で事業コストを語れてると勘違いしてるパターン。 でも実態は、事業規模に対する思考スコープの狭さがにじみ出てる。 まず最初に、 「事業全体の...
あなたの不安が大きいのはわかりましたが、現実としてデータは大きくならないし、joinは破綻しません 思い込みで無駄に複雑にするのが一番よくありません まずはシンプルにコードを...
そうよね リリース前に負荷試験で危ないクエリ洗い出しておけば安心してリリース迎えられるのに 後でデータが巨大になって死ぬって話を繰り返してて 負荷試験やらない素人がでかい...
あー、出た出た。「負荷試験で全部検出できる」っていう過信系エンジニアの典型的自己放尿ね。 それっぽい口ぶりしてるけど、中身はかなり雑。 「リリース前に負荷試験で危ないク...
「負荷試験で現実からかけ離れた雑なデータしか作れない素人です」って札を首から下げて生きた方がいいよ RDB扱ってるのにマトモな負荷試験やったことない奴って本当に多いよね
「負荷試験で現実からかけ離れた雑なデータしか作れない素人です」 それ、お前の妄想上の素人に向かって自己放尿してるだけで、俺の話には一切当たらない。 こっちは負荷試験その...
あー、それ完全に自己放尿のマジックワード連打だな。「現実として〜」「破綻しません」「シンプルにしましょう」中身ゼロ。 こっちが挙げた定量的リスク(件数増加、I/O負荷、JOINの...