エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
MySQL5系の記憶でWHERE IN(ids)にしたらDBが死にかけた話
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
MySQL5系の記憶でWHERE IN(ids)にしたらDBが死にかけた話
"The most dangerous phrase in the language is, 'We've always done it this way.'" (最も危険な言葉... "The most dangerous phrase in the language is, 'We've always done it this way.'" (最も危険な言葉は、「ずっとこうやってきた」だ。)—— Grace Hopper MySQL 5系を触っていた頃、「MySQLはサブクエリが遅い」は常識だった。derived tableは一時テーブルへmaterializeされ、dependent subqueryは外側の行ごとに再実行される。「サブクエリを避けてJOINに書き換えろ」「先にIDを取ってWHERE INで渡せ」が定石。 その定石をMySQL 8.0環境にそのまま持ち込んで、本番が死にかけた話です。 やったこと 注文一覧を返すAPIをリファクタリングしました。v1は4テーブルJOINで、一覧表示に不要なsuppliersまで常にJOINしていました。 -- v1:

