For Want Of A Better Word

[mysql][db]データ増大に伴う、データ表示処理・データ蓄積処理の変更履歴…

   

背景

ログの蓄積について、とりあえずでやっていたら処理がドンドンおもくなっていき、それにつれ、対応を変えていったのでその履歴のメモ。

 

最初の要望:アクセスログから、アクセスページとユーザーIDのユニークな組み合わせを取得し、webで表示したい。

GROUP BY url, user_idで簡単に取れる。

 

しかし、件数が増えるにつれWEBから都度SQL発行では遅すぎる。

 

次の対応:バッチで日次でサマリーテーブルにデータを入れておこう。

webでつかったGroup BYの結果をそのままテーブルに保存。

これをwebから参照しよう!!

しかし、これも件数が増えるにつれ。。。1時間以上かかるように….

 

 

次の対応:毎日追加分のログだけインサートしよう(そりゃそうだけど)

データの有無をプログラムでチェックすればいいけど、ちょっと面倒くさいな。

主キーが重複したら、入らず処理を続行してくれればよいだけなので…一意制約違反を無視してしまえ。

 

IGNORE さまさまーー。

次はどんなことになるかな….

 - db, mysql

  関連記事

[sql][mysql]特定グループ毎に最大の値を持つ行を取得する(相関サブクエリー、JOIN)

標題のとおり ぱっと考えるとMAX()でとればいいように思えるが、GROUP B …

[mysql]どういうSQL文のとき、どういうインデックスが使われるのか整理

mysqlのチューニングをしていて、どうしてもインデックスが、どの指定の時に何が …

mysql 内部結合・外部結合違い inner join,left join,right join

参考サイト]http://mathemathiko.hatenablog.com …

[mysql]集合差を求める場合の処理速度比較(NOT IN(), NOT EXISTS, LEFT JOIN … IS NULL)

  http://qiita.com/Hiraku/items/718 …

【MySQL】query_logを取得した場合の速度影響

あくまでWEB画面表示について。 環境は下記。 Linux CentOs7.1 …