Google Cloud SQLとBigtableのコード記述と処理スピードを比較・検討してみる
Google App Engine for JavaでMySQLを使ってみる(2)
マスタ削除
Cloud SQL
public String delItemInfo(String item_no){
// Start Timer
long start = System.currentTimeMillis();
// Start Timer
try{
String sql = "delete from item_info where item_no = ?"; //(1)
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, item_no);
ps.executeUpdate(); //(2)
// End Timer
long stop = System.currentTimeMillis();
// End Timer
long time = stop - start;
rv = " 実行時間: " + time +" ms";
}catch(SQLException e){
rv = "接続失敗\n理由:" + e.toString();
}catch(Exception e){
e.printStackTrace();
rv = "削除失敗\n理由:" + e.toString();
}finally{
try{
con.close();
}catch(Exception e){}
}
return rv;
}
レコード削除でのCloud SQL時間測定は、(1)のSQL文指定から(2)の削除実行までで特に問題はないでしょう。
Bigtable
public String delItemInfo_kv(String item_no){
// Start Timer
long start = System.currentTimeMillis();
// Start Timer
try{
ds.delete(KeyFactory.createKey("item_info", item_no)); //(1)
// End Timer
long stop = System.currentTimeMillis();
// End Timer
long time = stop - start;
rv = " 実行時間: " + time +" ms";
} catch(Exception e2){
rv = "削除不成功 " +e2;
}
return rv;
}
Bigtableでの削除処理は(1)の1行コードで済んでしまいます。繰り返しになりますが、Low-Level APIでのBigtableアクセスは決して複雑なものではありません。
削除処理時間の測定結果
| 1 | 2 | 3 | 4 | 5 | |
| Cloud SQL 削除(クラウド) | 128 | 110 | 103 | 103 | 104 |
| Cloud SQL 削除(ローカル CI) | 428 | 340 | 334 | 323 | 390 |
| Cloud SQL削除(ローカル MI) | 22 | 42 | 27 | 28 | 26 |
| Bigtable 削除(クラウド) | 20 | 13 | 14 | 13 | 13 |
| 全平均 | 2~5平均 | |
| Cloud SQL 削除(クラウド) | 109.60 | 105.00 |
| Cloud SQL 削除(ローカルCI) | 363.00 | 346.75 |
| Cloud SQL 削除(ローカルMI) | 29.00 | 25.75 |
| Bigtable 削除(クラウド) | 14.60 | 13.25 |
削除処理では、特に突出して時間のかかるケースがありませんが、この場合も参照を実行してからの処理になるので更新と同様の理由からの結果と言えるでしょう。
最後に
今回の連載(2回)は、GAEでのMySQL使用を可能にするGoogle Cloud SQLを紹介する内容でしたが、
ややCloud SQLに不利なデータを紹介する記事になってしまったようです。しかし、これも実際に測定した結果なので止むを得ないことでしょう。
NoSQLのBigtableの方が、SQLのMySQLよりアクセスパフォーマンスが優れているのは予想通りの結果と言えます。ローカル環境でのMySQLインスタンスでの実行はオンプレミスでのMySQLサーバ利用と、かなりの程度類似していると見ることができます。従ってこの結果だけ見れば、オンプレミスMySQLの方がGAEクラウド環境でのCloud SQLよりかなりの程度パフォーマンスが良いという結果になっています。
参照サイト
参照サイトでは登録と参照のみ実行可能にしてあります。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- Google App Engine for JavaでMySQLを使ってみる連載記事一覧
-
- Google Cloud SQLとBigtableのコード記述と処理スピードを比較・検討し...
- Google App Engine for JavaでMySQLを使ってみる
- この記事の著者
-
清野 克行(セイノ カツユキ)
慶應義塾大学工学部電子物理専攻卒。日本IBM、日本HPで、製造装置業を中心とした業務系/基幹業務系システムのSE/マーケティングや、分散アプリケーションによる社内業務システム開発などに携わる。現在は、クラウドやAjax関連の/ソフト開発/書籍執筆/セミナー講師/コンサルティング、などを行っている。情...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

