BigQuery と MySQL の違い — OLTP と OLAP を理解する
このレッスンでは、Google の分析基盤 BigQuery と、Web サービスの定番データベース MySQL の違いを学びます。どちらも SQL で操作できるため混同されがちですが、設計思想は正反対です。「OLTP と OLAP」「行指向と列指向」という2つの軸で整理すると、マーケティング分析でどちらを使うべきかが一発で判断できるようになります。
目次 (6)
OLTP と OLAP — 「業務を回す DB」と「分析する DB」
まず最重要の用語を2つ定義します。
- OLTP(オンライントランザクション処理): 注文・会員登録・在庫更新のように、小さな読み書きを大量・高速にさばく処理。ECサイトの裏側で毎秒動いているのがこれです
- OLAP(オンライン分析処理): 「過去1年の購入データを月別×チャネル別に集計」のように、大量データをまとめて読んで集計する処理。レポートや分析がこれです
MySQL は OLTP の代表選手、BigQuery は OLAP 専用に作られた DWH(データウェアハウス=分析用のデータ倉庫) です。私はよく「MySQL はレジ、BigQuery は経営会議の資料室」と説明しています。レジは1件の会計を一瞬で処理するのが仕事で、資料室は何年分もの記録を横断して眺めるのが仕事。逆をやらせると両方とも遅くなります。
行指向と列指向 — 速さの理由はデータの並べ方
この得意分野の違いは、データをディスクに並べる方向から来ています。
- 行指向(MySQL): 「1行=1件のデータ」をひとかたまりで保存。「注文 ID 12345 の全項目を取り出す・更新する」が速い
- 列指向(BigQuery): 「1列=1項目」ごとにまとめて保存。「全注文の売上列だけを読んで合計する」とき、関係ない列を読まずに済むので、数億行の集計でも数秒で返せます
| 観点 | MySQL | BigQuery |
|---|---|---|
| 分類 | RDBMS(OLTP 向き) | DWH(OLAP 専用) |
| データの持ち方 | 行指向 | 列指向 |
| 得意な処理 | 1件単位の読み書き・更新を大量にさばく | 数億行のスキャンと集計 |
| 苦手な処理 | 巨大データの全件集計 | 1行だけの頻繁な更新・削除 |
| インフラ管理 | サーバーの用意・チューニングが必要 | サーバーレス(Google が全部管理) |
| 主な利用場面 | Web サービス・EC の本番 DB | アクセスログ・広告・売上の分析 |
もうひとつ大きいのがサーバーレスという性質です。MySQL はサーバーを立ててメモリやディスクを管理する必要がありますが、BigQuery はデータを放り込んでクエリを投げるだけで、計算資源は Google 側が自動で割り当てます。非エンジニアのマーケターでも管理者なしで使い始められるのは、この性質のおかげです。
課金モデルの違い — BigQuery は「スキャンした量」で課金
マーケターが BigQuery で最初に戸惑うのが課金です(2026年時点、米国リージョンの目安)。
- クエリ(オンデマンド): スキャンしたデータ量に対して 1TiB あたり $6.25。毎月 1TiB までは無料
- ストレージ: アクティブなデータが約 $0.02/GB/月、90日間変更がないデータは約 $0.01/GB/月に自動で半額化
- 大規模利用向け: 計算枠(スロット)を時間単位で買う Editions という定額型もあり、$0.04/スロット時〜
MySQL(自前サーバーやクラウドの Cloud SQL など)が「サーバーを動かしている時間」に課金されるのに対し、BigQuery は「クエリが読んだデータ量」に課金されます。だから BigQuery では SELECT *(全列取得)が嫌われます。列指向なので、必要な列だけ指定すればスキャン量=料金が大きく下がるのです。これは覚えておいて損のない実務 Tips です。
マーケ分析での使い分け — 私の実例
私の現場での典型的な構成はこうです。
- MySQL: サイトやアプリの本番データベース。会員・注文・コンテンツデータが日々更新される
- BigQuery: GA4 のイベントデータ、広告データ、そして MySQL から日次でコピーした売上データを集約
- 分析・レポートは BigQuery 側で SQL を書き、Looker Studio などで可視化
やってはいけないのが「本番 MySQL に重い集計クエリを直接投げる」こと。分析クエリがレジ(本番処理)を詰まらせ、最悪サイトが遅くなります。業務データは MySQL、分析は BigQuery に寄せて集計する——この分離が鉄則です。
逆に、BigQuery を業務 DB として使うのも誤りです。1行ずつの更新・削除は苦手で、リアルタイムの在庫管理のような用途には向きません。
まとめ
- MySQL は OLTP(業務処理)向きの行指向 RDBMS、BigQuery は OLAP(分析)専用の列指向 DWH
- BigQuery はサーバーレスで、課金は「スキャンしたデータ量」。必要な列だけ SELECT するのが節約の基本
- 本番データは MySQL、分析データは BigQuery に集約して分離するのが実務の定石
- 次のレッスンでは、RDB・DWH・NoSQL を含めた全体地図と GA4 連携を扱います