Download presentation
Presentation is loading. Please wait.
1
データベースによる並列処理 情報論理工学研究室 三宅健太
2
本研究の背景 × × 原因 3. データのサイズが大きすぎる。 1. SQL文の文法 2. インデックスの張り方 膨大な量からなるデータ
データベース 検索 応答 ユーザ 1つの応答時間が、 非常に大きなもの となってしまうこと がある。 原因 2. インデックスの張り方 1. SQL文の文法 × × 3. データのサイズが大きすぎる。 最大の原因!!
3
データベースとの連携に優れたプログラムの表記法
解決策 パラレルクエリ あらかじめデータを細分化し、手分けして処理する。 テーブル パラレルクエリ 逐次クエリ データを順番に処理していく データを分割し、結果をまとめる。 クエリ 結果 目的 分割されたテーブルにデータを挿入し、処理速度の向上の目指す。 データベースとの連携に優れたプログラムの表記法 PHP データベース 計算機 挿入 取り出す 出力
4
データベース環境の構築 準備 Windowsの標準環境には、DBは付属していない。 必要なソフトウェアをインストールしなければならない。
XAMPP MySQL TeraPad Apache データベース テキストエディタ
5
MySQLによる逐次クエリ & パラレルコードによるパラレルクエリ
研究内容 MySQLによる逐次クエリ & パラレルコードによるパラレルクエリ 双方のクエリを実行し、それぞれ処理時間を測定する。 それぞれの結果を検証し、双方の結果を比較する。 検証手順 [1]データの分割・挿入 [2]MySQLによる各テーブルへのクエリ処理 [3]パラレルコードによる各テーブルへのクエリ [4]結果をまとめる
6
[1]データの分割・挿入 例 文字列 文字列 例 文字列
各クエリごとにレコード数が均等になるように2~10個のデータに分割・挿入する。入力データは、文字列(a~z)をシャッフルしたもの。 例 分割なし 2分割 150万レコード T1 挿入 挿入 文字列 T0 文字列 T2 300万レコード 150万レコード 各テーブルを(T1-----Ti(2<=i<=10)) とし、テーブル全体をマージして比較用のテーブルT0を作成する。 例 2分割 MySQL MySQL T1 挿入 マージ結合 T0 文字列 T2
7
[2]MySQLによる各テーブルへのクエリ処理
各テーブルに入力された文字列(a~z)から、”sql”と配列された文字列を含む行を出力すると命令し、その処理速度を測定する。 例 分割なし 2分割 MySQL MySQL 逐次テーブル マージテーブル T0 T0 クエリ 結果表示 クエリ 結果表示 [3]パラレルコードによる各テーブルへのクエリ 各テーブルにパラレルコードを使用して、”sql”と配列された文字列を含む行を出力すると命令し、その処理速度を測定する。 例 分割なし 2分割 MySQL MySQL T1 T0 クエリ 結果 クエリ 結果 T2
8
出力された結果を作成した一時ファイルに追記し、処理速度の測定の結果を表示する。
例 分割なし 2分割 T0 T1.T2 追記 追記 出力 追記 集計 一時テーブル 一時テーブル 結果 結果表示 結果 結果表示 [4]結果をまとめる 各テーブルの処理がすべて完了しているかをチェックし、 MySQLによる逐次クエリの結果を、各分割ごとに比較 パラレルコードによるパラレルクエリの結果を、各分割ごとに比較 双方のクエリの結果を検証し、比較
9
MySQLによる逐次クエリ & パラレルコードによるパラレルクエリ
結果 MySQLによる逐次クエリ & パラレルコードによるパラレルクエリ
10
まとめ 今後の課題 1台の計算機を用いての処理であるため、並列処理可能な処理数に限界が見られた。 マルチプルINSERTによる方法
双方のクエリは、共に各テーブルを分割化することにより、処理速度が向上することが示された。 逐次クエリよりもパラレルクエリのほうが、より高いパフォーマンスが得られる。 1台の計算機を用いての処理であるため、並列処理可能な処理数に限界が見られた。 今後の課題 マルチプルINSERTによる方法 データ挿入部分を自動化し、ユーザがデータベースを使用する手間を省く
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.