MySQL HeatWave Serviceの高速分析を試してみた

 2025.06.09  株式会社システムエグゼ オラクルクラウドチーム

Oracle Cloud Infrastructure(以下OCI)の入門編チュートリアルにある「MySQLで高速分析を体験する」。この検証内容をベースに、ECPUモデルの小規模構成でMySQL HeatWave Serviceの高速分析を実施してみました。

“無償”でクラウド移行の意思決定に必要な情報を提供
OCIに特化した無償移行アセスメントサービス

「高品質・低コストなOracle Cloudに移行したいがノウハウがない」「まだ比較検討段階で外部にアセスメントを依頼する予算がない」「まるっとクラウド移行を任せられるベンダーが欲しい」などのお困りごとは、ぜひ私たちシステムエグゼへご相談ください。

3回のワークショップでスピーディーにお客さまのシステムのアセスメント結果をご提供します!

サービスの詳細はこちらから

MySQL HeatWave Serviceとは

MySQL HeatWave Serviceは、OCI上で提供されるフルマネージドのMySQLデータベースサービスです。従来のMySQLが得意とする高速なトランザクション処理(OLTP)に加え、「HeatWave」という独自のインメモリアナリティクスエンジンを統合することで、大量データの集計や分析(OLAP)も同一のデータベース上で高速に処理できます。
これにより、データの移動や複数システムを使う必要がなくなり、リアルタイムでの高度な分析やレポーティングが容易になります。さらに、マネージドサービスのため、バックアップ、自動パッチ適用、可用性・スケーラビリティの確保、セキュリティ対策など運用管理も自動化されており、開発者や運用担当者の負担を軽減できます。コスト効率も高く、最新の分析・機械学習機能もサポートしています。

忖度無しの徹底比較! Oracle Cloud Infrastructure VS Amazon Web Services
クラウド利用における三大課題と理想的なクラウド運用

MySQL HeatWave Service検証内容

OCIの入門編チュートリアルにもある MySQLで高速分析を体験するの内容をベースに検証を行いました。2025年5月時点のチュートリアルでは、以前のOCPUモデルを利用していたため、今回はECPUモデルを使い、さらに小さめのシェイプで検証しました。

構成

MySQL HeatWave Service検証内容

  • コンピュート(踏み台)
    シェイプ:VM.Standard.E5.Flex
    OCPU数:1
    メモリ:8 GB
    ブートボリュームサイズ47 GB
  • MDSノード
    シェイプ:MySQL.2
    ECPU数:2
    メモリ:16 GB
    ストレージ・サイズ:200 GB
    データベースのバージョン:8.4.5 - LTS
  • HeatWaveノード
    シェイプ:HeatWave.32GB
    ノード:2
    メモリ:64 GB

試験シナリオ

OCIチュートリアルと同じハンズオン用のファイルを下記のコマンドでダウンロードし、MDSノードにtpchデータベースを作成し、THP-H用のデータをロードします。

 wget https://objectstorage.ap-osaka-
1.oraclecloud.com/p/seAq8Kgd4TyUqlv5M5qObMJwvsluhCPyOuHOn1L_t4HQYUle2DV-
KdFeK44MS7yQ/n/idazzjlcjqzj/b/workshop/o/heatwave_workshop.zip

MDSノードに格納したデータに対してと、HeatWaveノードにロードしたデータに対して、lineitem テーブルから売上や注文状況を集計するSQLを実行し、処理時間の性能差を比較します。

SELECT
     l_returnflag,
     l_linestatus,
     SUM(l_quantity) AS sum_qty,
     SUM(l_extendedprice) AS sum_base_price,
     SUM(l_extendedprice * (1 - l_discount)) AS sum_disc_price,
     SUM(l_extendedprice * (1 - l_discount) * (1 + l_tax)) AS sum_charge,
     AVG(l_quantity) AS avg_qty,
     AVG(l_extendedprice) AS avg_price,
     AVG(l_discount) AS avg_disc,
     COUNT(*) AS count_order
 FROM
     lineitem
 WHERE
     l_shipdate <= DATE '1998-12-01' - INTERVAL '90' DAY
 GROUP BY l_returnflag , l_linestatus
 ORDER BY l_returnflag , l_linestatus;

MySQL HeatWave Serviceの構成

1. コンソールメニューから データベース → HeatWave MySQL → DBシステム を選択します。
コンソールメニューから データベース
2. DBシステムの作成 ボタンを押します。
 DBシステムの作成
3. 以下の項目を入力します。
DBシステムの作成

デフォルトの設定・・・「開発またはテスト」を選択します。
コンパ―トメントに作成・・・作成するコンパ―トメントを指定します。
名前・・・任意の名前を入力します。ここでは「HW-MySQLBench」と入力しています。
説明・・・説明を入力します。ここでは「検証用MySQL HeatWave」と入力しています。(任意)

管理者資格証明の作成

ユーザー名・・・管理者ユーザーのユーザー名を指定します。ここでは「root」と入力しています。
パスワード・・・管理者ユーザーのパスワードを指定します。パスワードは8文字から32文字までの長さで、大文字、小文字、数字および特殊文字をそれぞれ1つ以上含める必要があります。
パスワードの確認・・・パスワードを再入力します。
構成・・・MDSノードの構成を指定します。ここでは「スタンドアロン」を選択します。

ネットワーキング構成

仮想クラウド・ネットワーク・・・事前に作成済みのVCNを選択します。
サブネット・・・事前に作成済みのVCNを選択します。

ハードウィアの構成

HeatWaveクラスタの有効化・・・HeatWaveノードを利用するので「ON」にします。
シェイプの変更・・・MDSノードのシェイプを選択します。ここでは「MySQL.2」を選択しています。
HeatWaveクラスタの構成・・・HeatWaveノードのシェイプとノード数を選択します。ここでは「HeatWave.32GB」「2ノード」を選択しています。

ストレージ・サイズ

初期データ・ストレージ・サイズ(GB)・・・MDSノードのストレージ・サイズを指定します。ここでは「200」を選択しています。

バックアップ・プランの構成

自動バックアップの有効化・・・MDSノードの自動バックアップを有効化するかを選択します。ここでは「オン」を選択しています。
バックアップ保持期間・・・バックアップの保持期間を設定します。ここでは「1」を指定しています。
ポイントインタイム・リカバリの有効化・・・有効化することで特定の時点で新しいDBシステムにリストアすることができます。

クロスリージョン・コピ

連絡先の電子メール・・・メンテナンス・ウィンドウ、クリティカルなパッチ適用更新、潜在的なサービスの中断などの通知を受信するEメール・アドレスを指定します。

4. 拡張オプションを必要に応じて設定します。各タブで設定できる内容について紹介します。
削除プラン・・・「削除保護」「自動バックアップの保持」「最終バックアップ」

拡張オプションの非表示

構成・・・「構成の選択」「データベースのバージョン」

作成の選択

接続・・・「プライマリ・エンドポイント」「エンドポイントの読取り」「セキュリティ証明書」

プライマリ・エンドポイント

クラッシュ・リカバリ・・・「クラッシュ・リカバリの有効化」

クラッシュ・リカバリ

メンテナンス・・・「メンテナンス・ウィンドウの開始時間」

メンテナンス
管理・・・「データベースおよびアクセス・モード」「関連付けられたサービス」

管理

データのインポート・・・「PARソースURL」

データのインポート

タグ・・・「タグネームスペース」「タグ・キー」「タグ値」

タグ

最後に「作成」ボタンを押します。

5. ステータスがアクティブになるまでしばらく待ちます。作業リクエストから進捗を確認することができます。今回の構成では約20分で作成することができました。

HW-MySQLBench

HW-MySQLBench

MySQL HeatWave Serviceの高速分析検証

下記ページを参考にセキュリティリストの修正/MySQL Shellのインストールをします。
その9 - クラウドでMySQL Databaseを使う

下記ページを参考にサンプルデータベースの構築とMDSノード/HeatWaveノードによるSQLの実行測定を行います。
その10 - MySQLで高速分析を体験する
それぞれMDSノードとHeatWaveノードで3回実行した結果は下記の通りとなりました。
  MDSノード HeatWaveノード
1回目 7.6301秒 0.5389秒
2回目 7.8752秒 0.4179秒
3回目 9.7703秒 0.3011秒

今回のSQLで検索している対象のデータ量はそれほど大きくありませんが、この程度のデータ量でさらにチュートリアルよりも小規模な構成でも顕著に性能が向上していることがわかります。

まとめ

MySQL HeatWave Serviceの構築と高速分析検証をご紹介しました。チュートリアルで紹介されている構成よりもかなり小さい構成での検証だったため、性能差が出るかどうか疑っていました。しかしチュートリアルで紹介されている約65倍までにはならなかったものの、はっきりと性能差ができました。
この検証で小規模な構成でも、高速分析ができることが確認できたのではないでしょうか。

多くのMySQLを利用したシステムでは、これまで負荷の高い集計処理はレプリケーションした読み取り専用のMySQLを別途設けて、メインのMySQLに負荷をかけない形で運用しているケースが多いと思います。MySQL HeatWave Serviceでもレプリカの作成はできますが、より高速な分析処理をしたい場合にはHeatWaveノードを利用することで、リアルタイムに高度な分析やレポーティングが容易に行えます。

MySQL HeatWave Serviceでは、オンプレミスやクラウド上のMySQLとのレプリケーションもサポートされているためMySQL HeatWave Serviceへスムーズに移行することができます。さらにEnterprise Editionの機能も利用でき、オラクル社のMySQLサポートも受けられます。

MySQLを利用しているお客様でMySQL HeatWave Serviceについてご興味のある方はお気軽にシステムエグゼまでお問い合わせください。

Oracle Cloudとシステムエグゼが選ばれる理由 Oracle Cloudのことなら“システムエグゼ”

RECENT POST「エンジニアリング」の最新記事


MySQL HeatWave Serviceの高速分析を試してみた
Oracle Cloudのすすめクラウド移行まるわかりガイド

RECENT POST 最新記事

RANKING人気記事ランキング