タグ

ブックマーク / taitan916.info (1)

  • MySQLでJOINの高速化 | 勉強したことのメモ

    JOINで無茶苦茶悩んだのでメモ。やりたかった事は、MySQLで テーブルAには必要最低限のログが格納テーブルBにはカテゴライズ情報が格納AとBを組み合わせてカテゴリー毎に集計したいというもの。 あと難点として、テーブルAは200万件ほどデータが入っていて、尚且つサーバースペックが5年以上前のものらしくあまりよくないらしい。 で、最初に考えた案としては普通にJOINして、結果をWHEREで絞って集計。 SELECT SUM(aaa) FROM table_a AS a LEFT JOIN table_b AS b ON a.aaa = b.bbb WHERE ~~~みたいな感じ。結合のキーは文字列。 1日毎の集計だと問題ないけど月間、年間で集計したら トラフィックがえげつないことになった。 かといってPHPで処理したらメモリ不足でタイムアウトが発生した。 上司相談したところ、DBの構成を

    MySQLでJOINの高速化 | 勉強したことのメモ
    takets
    takets 2018/07/11
  • 1