こうしたなか、MIT Computer Science and ArtificialIntel ligence Laboratory(CSAIL)の研究チームは、機械学習によってデータベースのパフォーマンスを高めるシステム開発を企てている。
PostgreSQLに統合される同システムは、SQL問い合わせ(クエリ)の最適化に機械学習を使った初のアプローチだ。
クエリのタイプに応じてデータ構造を再編成
研究チームは、メモリへの負荷を最適化し、個々のアプリケーションに応じて一部データ構造を再編成するシステム開発を目指している。手始めとして、クエリのタイプに応じてデータ構造を再編成する「Tsunami」と、効率的にクエリを最適化する「Bao」を開発。いずれも機械学習を利用したシステムだ。
テストにてTsunamiは、クエリ実行時に参照するインデックスのサイズを従来のシステムの最小100分の1にまで縮小でき、クエリ実行速度も最大10倍となることが示された。
1時間のトレーニングでパフォーマンスを発揮
PostgreSQLのオプティマイザは、複数のクエリ実行計画の中から誤ったものを選ぶ可能性があり、これがパフォーマンスの低下につながる。Baoは、どのクエリ実行計画を回避すべきかを学習できて、従来のオプティマイザと比較して最大50%高速にクエリを実行できる。わずか1時間のトレーニングで、従来のオプティマイザよりも優れたパフォーマンスが発揮できるようになるとのこと。
エンジニアの手を借りることなくアプリケーションごとにベストなパフォーマンスが出せて、時間の節約からクラウドサービスの利用コストを削減できる同システムは、実用化されればデータベースの運用に革命を起こす可能性がある。
参照元:Data systems that learn to be better/ MIT News