MySQLの新サービス「HeatWave」、SQLそのままで最大3000倍高速に。DMM.comが検証[PR]

2021年5月17日

DMM.comは、動画配信やオンラインゲーム、オンライン英会話から株式や外国為替の取引まで、さまざまなサービスを20以上のグループ会社で提供しています。

同社のデータ基盤のデータベースにはMySQLが採用され、運用されてきました。

fig

そのデータベースをMySQL 8.0へ移行するにあたり、移行先の候補とされたのがOracle Cloud上のマネージドサービスとして提供されているMySQLの新サービス「MySQL Database Service with HeatWave」(以下、HeatWave)です。

fig1

DMM.comは同社の実際のデータとSQLを使ってHeatWaveを評価。結果として最大で3000倍もの性能向上が得られたとする発表を、2021年5月に行われたウェビナー「DMM.comにおけるMySQL活用術とHeatWave検証結果解説」で行いました。

またオラクルはHeatWaveの活用に向けて、MySQLで遅いクエリに悩んでいるユーザーを対象にオラクルのMySQLチームが支援しつつHeatWaveを実際に試せる機会の無償提供を開始することも発表しています

これはオンプレミスのMySQLだけでなく、AWS上のAmazon RDS MySQLやGoogle Cloud SQL for MySQLやMariaDBなど、提供ベンダを問わずすべてのMySQLが対象となる予定です。

本記事では、このDMM.comによるHeatWaveの検証、オラクルによる無償での検証機会、さらに今後のHeatWaveのロードマップについても紹介していきます。

HeatWaveとは、MySQLにカラム型インメモリエンジンを搭載

HeatWaveとは、Oracle Cloud Infrastructure上で稼働するMySQLに、オラクルが開発したカラム型の分散インメモリデータベースエンジンを搭載し、マネージドサービスとして提供されているものです。

通常のデータベースエンジンであるInnoDBによるOLTPと、HeatWaveエンジンによる高速な大規模データの分析を可能にしています。InnoDBとHeatWaveエンジンの使い分けはMySQLが自動的に判断します。そのためデータベースエンジンに合わせてSQL文を書き分ける、といったことは必要ありません。

しかもHeatWaveはMySQLそのものであり、MySQLに対応するBIツールやユーティリティなどはすべてそのまま使えます。

4倍から8倍の高速化を実現、しかし「思ったほどの速度向上ではない」と評価

さて、DMM.comによるHeatWaveの検証は、大きく2つの段階に分かれていました。第一弾の「初期検証データ」は、日本語がデータに多く含まれ、カラム数が比較的少ないテーブルが多く、プライマリキーが存在していないテーブルも含まれていました。

この初期検証データに対して、文字列の検索でテーブルをフルスキャンするような検索などを含むクエリの実行結果は、7.3秒が0.85秒に、1.68秒が0.33秒になり、HeatWaveの方が8倍から4倍程度高速化されるという結果が得られました。

しかしDMM.comとしては「期待していた単一のテーブルの全件スキャンでは、思っていたクエリの速度向上は確認できず」と評価。

また、HeatWave稼働の条件である「全テーブルにプライマリキーが設定されていなければならない」ことも、速度向上の制約となりました。

この条件については現在、HeatWaveの開発チームが撤廃に向けて開発を進めているとオラクルはコメントしています。

複雑なクエリほど能力を発揮、最大で3000倍に

検証の第二弾で用いられた「後期検証データ」は、日本語データを含まず、すべてのテーブルにプライマリキーが設定され、カラム数が多く複数のテーブルをジョインして利用されることが多い、というものでした。

ここでは、ジョインしたうえにLikeによるあいまい検索を含むという複雑なクエリに対してHeatWaveの能力が十分に発揮され、約1000倍の高速化を達成。

fig

約3億件のデータに対して特定の範囲を取得するクエリでは、3000倍もの高速化が実証されています。

fig

DMM.comはこれらの検証について「クエリを修正せずにクエリ処理が向上するのは驚き」とコメントした上で、HeatWaveに対して「監視のメトリクスの拡充を期待したい」と追加機能への期待も示しました。

fig

無償でHeatWaveのパフォーマンスを実体験

このようにHeatWaveの性能が実証されていく中で、オラクルはさらに多くのユーザーにHeatWaveの性能を実体験してもらうべく、無償で提供する「MySQL HeatWaveパフォーマンスヘルスチェック」の実施を発表しています。

fig

MySQLをお使いで、遅いクエリに悩んでいる方々に、オラクルのMySQLチームがアーキテクチャやクエリの最適化などに関するアドバイスやガイダンスを行いつつ、HeatWaveにSQLやデータをロードして性能向上度合いを体験していただく機会となります。

費用は無料。対象となるのはオンプレミスのMySQLだけでなく、AWS上のAmazon RDS MySQLやGoogle Cloud SQL for MySQLや、MySQL互換のMariaDBなど、提供ベンダを問わずほとんどのMySQLが対象となります。

≫MySQL HeatWaveパフォーマンスヘルスチェック

機械学習による自動化が今後の進化のカギに

HeatWaveは2020年12月に登場以来、ほぼ毎月アップデートを繰り返し、機能追加などが行われています。

DMM.comの検証で要望とされたプライマリキーのないテーブルへの対応や、監視メトリクスの拡充なども今後のアップデートで実現されるでしょう。

今後のHeatWaveの機能強化は、機械学習による自動化が軸になる見通しです。というのも、HeatWaveの開発責任者はオラクルにおける機械学習分野の開発も長年担当しており、その成果がHeatWaveにも反映されていくと見られるためです。

fig

例えば、分散処理に適切なノードのプロビジョニングの自動化、分散したノードにどのようにデータを適切に分散配置すると性能が最大化されるかをテーブルのジョインやスキャンの情報を基に、データベース管理者に提案する機能などが想定されます。

さらにその先には、これまでのクエリの実行結果などを基に、データベースのI/Oまわりのコンフィグレーションやデータベースに対するインデックスの設定などについても性能の最適化のための自動化が検討されています。

MySQLに蓄積されてきたデータの価値を高めるHeatWave

オープンソースのデータベースの代表的存在であるMySQLは、オープンであることや高いOLTP性能などにより多くのデータベース基盤に採用されてきました。

HeatWaveはそのMySQLの能力をOLAP(Online Analytical Processing)へと大きく拡張します。

これは単にMySQLで高性能な大規模分析処理が可能になるというだけでなく、OLTPの用途でMySQLに蓄積されてきたデータがそのまま分析対象になるという点で、MySQLを利用しているあらゆるユーザーとそのデータの潜在的な価値を全体として大きく高めるサービスだと言えるのではないでしょうか。

HeatWaveの詳しい内容は、ぜひ下記のWebサイトをご覧ください。

≫MySQL HeatWave

fig5

(本記事は日本オラクル提供のタイアップ記事です)

関連記事

このエントリーをはてなブックマークに追加
follow us in feedly




カテゴリ

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed


最新記事10本