[mysql][db]データ増大に伴う、データ表示処理・データ蓄積処理の変更履歴…
背景
ログの蓄積について、とりあえずでやっていたら処理がドンドンおもくなっていき、それにつれ、対応を変えていったのでその履歴のメモ。
最初の要望:アクセスログから、アクセスページとユーザーIDのユニークな組み合わせを取得し、webで表示したい。
GROUP BY url, user_idで簡単に取れる。
しかし、件数が増えるにつれWEBから都度SQL発行では遅すぎる。
次の対応:バッチで日次でサマリーテーブルにデータを入れておこう。
webでつかったGroup BYの結果をそのままテーブルに保存。
これをwebから参照しよう!!
しかし、これも件数が増えるにつれ。。。1時間以上かかるように….
次の対応:毎日追加分のログだけインサートしよう(そりゃそうだけど)
データの有無をプログラムでチェックすればいいけど、ちょっと面倒くさいな。
主キーが重複したら、入らず処理を続行してくれればよいだけなので…一意制約違反を無視してしまえ。
1 |
INSERT IGNORE INTO.... |
IGNORE さまさまーー。
次はどんなことになるかな….
関連記事
-
-
[mysql]集合差を求める場合の処理速度比較(NOT IN(), NOT EXISTS, LEFT JOIN … IS NULL)
http://qiita.com/Hiraku/items/718 …
-
-
[mysql]どういうSQL文のとき、どういうインデックスが使われるのか整理
mysqlのチューニングをしていて、どうしてもインデックスが、どの指定の時に何が …
-
-
[PHP][PDO]prepareでのバインド方法整理
データをstmtに渡す部分をちょくちょく待ちがえて混乱するのでメモ 参考:htt …
-
-
[sql][mysql]特定グループ毎に最大の値を持つ行を取得する(相関サブクエリー、JOIN)
標題のとおり ぱっと考えるとMAX()でとればいいように思えるが、GROUP B …
-
-
xamppの旧バージョンダウンロード
案件ごとにいろんなphp apacheのバージョンを組み合わせるのが面倒臭い。 …