タグ

2019年8月28日のブックマーク (3件)

  • MySQLで時系列の集計用テーブルを効率よく差分更新するアイデア - Qiita

    レポート用の集計テーブル問題 レポート表示用に別途、集計テーブルを用いることがあります。 大量のレコードがあるテーブルに直接クエリで集計すると時間がかかるので、GROUP BY、COUNT、SUMなどを駆使して必要な粒度にまるめたテーブルを作る手法です。場合によっては圧倒的にパフォーマンスがよくなります。 例えばシンプルに記事(article)ごとのページビューを記録したテーブルがあるとします。 name type

    MySQLで時系列の集計用テーブルを効率よく差分更新するアイデア - Qiita
    k-holy
    k-holy 2019/08/28
    集計テーブルの差分更新
  • 【MySQL】Spiderストレージエンジンによる水平分散(シャーディング) - 株式会社オーツー|スタッフブログ

    どうも、開発2部サーバー担当の山です。 皆さんDBの水平分散は行ってますか? 最近ではサービス開始時点から水平分散しているタイトルも割と多いのではないでしょうか。ユーザーやデータが増えるのはサービスが好調な証ではありますが、いざ対応しようと思うと大変ですよね。 今回はMySQLのストレージエンジンであるSpiderを使った水平分散(以下シャーディング)について紹介したいと思います。 Spiderとは Spiderは2009年にver1.0がリリースされた国産のMySQLストレージエンジンで、MySQL以外にもMariaDBOracleに対応しています。 MySQLにはInnodbを代表にMyISAM、MEMORYなど様々な特徴を持ったストレージエンジンが用意されていますが、Spiderの特徴はストレージエンジンがシャーディングに対応していることです。 ここ最近は皆さんAWSのAuror

    【MySQL】Spiderストレージエンジンによる水平分散(シャーディング) - 株式会社オーツー|スタッフブログ
  • [SQL]データの縦持ち、横持ちを入れ替える | DevelopersIO

    はじめに 弊社のデータ分析案件において、RedshiftにてSQLを実行してデータを抽出することが増えてまいりました。SQLはデータの抽出には強力なのですが、JavaRubyなどのプログラミング言語と比べると独特であることも事実です。 例えば(PL/SQLなどは除いてですが) ループがない 変数に代入して次の処理に行くことができない メソッドやクラスに処理を分割できない などです。 これらの特徴からSQLでデータ抽出を行う為には、JavaRubyなどとは異なった手法を取る必要があります。そこで「JavaRubyとかでは・・・というやり方でやるのだけど、SQLではどうやるのだろう」というケースについて、シリーズ形式で何回かに分けて取り上げたいと思います。 尚、SQLの基的な構文(select、join、group byなど)については説明しません。またデータベースの種類に関わらず使用

    [SQL]データの縦持ち、横持ちを入れ替える | DevelopersIO
    k-holy
    k-holy 2019/08/28
    ピボットテーブルとCROSS JOINで正規化。これが必要な時が来るとは…