→正規化できるのではないか、テーブルをわける1テーブルが大きく正規化されずに開発されたサービスの保守はしている情報元JOIN禁止と固定長カラムについて信じられないDB文化「固定長DB」でもあうんです。大規模コンシューマ向けサービスのRDB設計MySQLの運用でありがちなことコンシューマでJOIN禁止とされる理由スケーラビリティの観点からDBの分割に対応しにくくなる1億レコード、将来10億レコード以上を想定した設計JOINした時に適切にINDEXが張られていないと致命的になるJOINそのものが問題なのではなく不適切な実行計画が問題の本質だから統計情報の自動的な採取はオフコンシューマで固定長とされる理由カラムの型として固定長(CHARとDATE)しか許されない。コンシューマ向けサービスでは、データの検索・操作・集計の範囲が広範囲になることはない。BYを使っていたら、集計関数を使わない方がデータベースの負荷は高い。BYを禁止しないと意味がないデータベースの負荷のピークは掛け算>例えば、JOINを使ったときのリソース使用率が100%で0.1秒、JOINを使わないとき、20%で1秒といった感じになる。5人が同時に同じ処理をリクエストしたとしましょう。>JOINを使ったときは、0.1~0.5秒で終わる。JOINを使わないときは、全員がほぼ1秒で終わる。これを重要視しがち>しかし、10人が同時に同じ処理をリクエストしたとしましょう。JOINを使ったときは、0.1~1.0秒で終わる。JOINを使わないときは、1~2秒で終わる。要件を満たせない≒パンク>データベースサーバでJOINで処理していれば、1秒間に対応できるのは10ユーザ、JOINしていなければ5ユーザで、シングルポイントのデータベースサーバが早くパンクするわけ。完全な同時実行なんて希ですが、処理が長ければ長いほど輻輳する可能性は高くなる。>結論としては、アプリケーションサーバでソートを肩代わりするか、マスターなどをキャッシュする以外は、下手糞がいなければデータベースサーバで処理した方がデータベースサーバの負荷は減る。巨大だからとか、見当違いも甚だしく全く関係ない。tableSQLアンチパターン本購入。コメントをキャンセルメールアドレスが公開されることはありません。*メール*ウェブサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。date*日本語が含まれない投稿は無視されますのでご注意ください。