SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

連載記事

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

CodeZine BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
Google App Engine for JavaでMySQLを使ってみる

Google Cloud SQLとBigtableのコード記述と処理スピードを比較・検討してみる

Google App Engine for JavaでMySQLを使ってみる(2)

  • X ポスト
  • このエントリーをはてなブックマークに追加

 米GoogleはGoogle App Engine(以後 GAE)から利用できるRDB(MySQL)の「Google Cloud SQL」(以後Cloud SQL)の提供をLimited Preview(限定プレビュー)としてアナウンスしています。前回はCloud SQLを使うための設定および、簡単なサンプルを紹介しましたが、今回はCloud SQL(SQL)とBigtable(NoSQL)のコード記述および処理スピードを比較・検討してみます。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 Cloud SQL(SQL)とBigtable(NoSQL)のコード記述および処理スピードを比較は以下の条件で行っています。

コード記述

 Java言語からのアクセスで、Cloud SQLではMySQLの動的SQLを使用し、BigtableではLow-Level APIを使用しています。Bigtableアクセス用のAPIとしてはこの他に、日本発のオープンソースフレームワークのSlim3やJDO(Java Data Objects)、JPA(Java Persistence API)などもありますが、アクセスパフォーマンスでは、ここで使用するLow-Level APIか最も優れているはずです。

処理スピード比較

 処理スピードの比較は、アイテムマスタのCRUD処理(登録・参照・更新・削除)をそれぞれ同じ画面内容からのアクセスで、Bigtableはクラウド環境で、Cloud SQLではクラウドとローカルの両方で測定を行っています。処理時間の測定では該当のメソッドが呼び出された瞬間から登録などの処理完了直後までの時間を、それぞれの処理パターンで計5回連続して測定しています。

対象ユーザ

  • Google App Engine for Javaに興味がある方
  • クラウドでのRDB(リレーショナルデータベース)使用に興味のある方

必要な環境

 Eclipse 3.5(Galileo)、3.6 (Helios)、3.7 (Indigo)のいずれか。

テストシステムの構成と画面

 今回のパフォーマンス比較は図1のシステム構成で行われています。図1では、ブラウザからの入力データをjQueryの非同期通信でサーブレットに送信し、サーブレットは受信データから処理モードを判断して対応するビーンズメソッドを呼びだします。

図1 Cloud SQL vs Bigtableのテスト環境
図1 Cloud SQL vs Bigtableのテスト環境

 ビーンズには、この記事で使用されているCloud SQLおよびBigtable用のすべての処理ルーチンがメソッドとして用意されており、リクエストに応じてMySQLまたはBigtableにアクセスし、要した処理時間を返すようになっています。

HRD(High Replication Datastore)

 現在のGAEでは、新たに作成したアプリケーションのデータストアは、デフォルトでHRD(High Replication Datastore)が使用されます。HRDはSDK 1.4.1からサポートされており、従来のMaster/Slaveデータストアに比べてデータの読み込み・書き込みでの可用性が高くなっていますが、書き込みに要する時間はやや遅くなります。

ローカル環境でのインスタンス選択

 今回のパフォーマンステストでは、Eclipseを使用したローカル環境での実行速度も測定しています。

  • ローカル環境でCloud SQLを実行する場合は、MySQLサーバをEclipseの外で起動しておく必要がありますが、筆者の場合は、フリーソフトのXAMPPを使用しています。
  • ローカル環境ではMySQLインスタンスとGoogle Cloud SQLインスタンスのどちらかを選択して実行しますが、MySQLインスタンスを選択した場合の方が遥かにパフォーマンスの良い処理速度が測定されています。

 ただし、MySQLインスタンスではローカル環境のMySQLにアクセスするのに対して、Google Cloud SQLインスタンスではローカル環境でもGAEクラウド上のMySQLをアクセスしています。従ってネットワークレイテンシがかなり異なっており、パフォーマンスの差異にかなり影響しているはずです。

 インスタンスの選択は次のような手順で行います。

  1. EclipseのProject Explorerから対象となるプロジェクトを右クリックしてリストを表示し、最下部にあるPropertiesを選択してProperties画面を表示します(「Alt+Enter」でも表示可能)。
  2. 表示されるProperties画面からGoogle -> App Engineと選択すると図2のような表示に変わるので、この画面下部の「Google Cloud SQL」でインスタンスの設定を行います。
  3. Google Cloud SQLで 「Enable Google Cloud SQL」をチェック。これはCloud SQL使用している場合はチェックしているはずです。ここで右の「My Instances..」をクリックすると、前回紹介したクラウド上のCloud SQLを管理する「Google APIs Console」画面が表示されます。
  4. 次に、開発環境でのSQLインスタンスを選択しますが、これはMySQLインスタンスおよびGoogle Cloud SQLインスタンスのどちらも使用することができます。
図2 PropertiesのApp Engine画面表示
図2 PropertiesのApp Engine画面表示

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
MySQLインスタンスの設定

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Google App Engine for JavaでMySQLを使ってみる連載記事一覧
この記事の著者

清野 克行(セイノ カツユキ)

慶應義塾大学工学部電子物理専攻卒。日本IBM、日本HPで、製造装置業を中心とした業務系/基幹業務系システムのSE/マーケティングや、分散アプリケーションによる社内業務システム開発などに携わる。現在は、クラウドやAjax関連の/ソフト開発/書籍執筆/セミナー講師/コンサルティング、などを行っている。情...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6499 2012/04/13 10:30
" ); }

おすすめ

アクセスランキング

  1. 1
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  2. 2
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  3. 3
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  4. 4
    Google、社内AIエージェント「Google Agentspace」発表
  5. 5
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  1. 6
    Linuxディストリビューション「Serpent OS」、アルファ版がリリース
  2. 7
    より使いやすくなったPHP 8.4の新機能──クラス定義や言語仕様とデータベース関連の強化ポイント
  3. 8
    中小企業の約6割、外部委託エンジニアの獲得に意欲的も、65.1%が「円滑な業務契約に向けた対策」の必要性を実感
  4. 9
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 10
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」

アクセスランキング

  1. 1
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  2. 2
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  3. 3
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  4. 4
    Google、社内AIエージェント「Google Agentspace」発表
  5. 5
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  6. 6
    Linuxディストリビューション「Serpent OS」、アルファ版がリリース
  7. 7
    より使いやすくなったPHP 8.4の新機能──クラス定義や言語仕様とデータベース関連の強化ポイント
  8. 8
    中小企業の約6割、外部委託エンジニアの獲得に意欲的も、65.1%が「円滑な業務契約に向けた対策」の必要性を実感
  9. 9
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  10. 10
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    「CUDA」 ~マンガでプログラミング用語解説
  3. 3
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  6. 6
    2024年12月に開催される注目のITエンジニア向けカンファレンス5選
  7. 7
    日本在住の英語を話すソフトウェア開発者、年収の中央値は950万円に
  8. 8
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  9. 9
    Google、社内AIエージェント「Google Agentspace」発表
  10. 10
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

メールバックナンバー

アクセスランキング

  1. 1
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  2. 2
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  3. 3
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  4. 4
    Google、社内AIエージェント「Google Agentspace」発表
  5. 5
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  1. 6
    Linuxディストリビューション「Serpent OS」、アルファ版がリリース
  2. 7
    より使いやすくなったPHP 8.4の新機能──クラス定義や言語仕様とデータベース関連の強化ポイント
  3. 8
    中小企業の約6割、外部委託エンジニアの獲得に意欲的も、65.1%が「円滑な業務契約に向けた対策」の必要性を実感
  4. 9
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 10
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」

アクセスランキング

  1. 1
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  2. 2
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  3. 3
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  4. 4
    Google、社内AIエージェント「Google Agentspace」発表
  5. 5
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  6. 6
    Linuxディストリビューション「Serpent OS」、アルファ版がリリース
  7. 7
    より使いやすくなったPHP 8.4の新機能──クラス定義や言語仕様とデータベース関連の強化ポイント
  8. 8
    中小企業の約6割、外部委託エンジニアの獲得に意欲的も、65.1%が「円滑な業務契約に向けた対策」の必要性を実感
  9. 9
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  10. 10
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    「CUDA」 ~マンガでプログラミング用語解説
  3. 3
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  6. 6
    2024年12月に開催される注目のITエンジニア向けカンファレンス5選
  7. 7
    日本在住の英語を話すソフトウェア開発者、年収の中央値は950万円に
  8. 8
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  9. 9
    Google、社内AIエージェント「Google Agentspace」発表
  10. 10
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に