インメモリDBは実用になるのか?

投稿日:2019年04月14日 16時41分14秒

今、インメモリDBが話題である。
先日世界最高速を謳うMYSQL互換のmemSQL2.0が発表された。これは8Gのメモリ中にデータを展開し、MYSQLの30~1000倍のパフォーマンスを叩き出すソフトといわれている。
データベースが高速化する事は単に業務処理のストレスが軽減されるだけではなく、業務そのものの見直しを含めた仕事の形態そのものが変化していく可能性を示している。

memsql_logo_color_vertical_300x200
[ad#ad-1]

インメモリDBとは従来の行毎にデータを持つ手法を変換し、カラム毎にデータを保存し圧縮する事でメモリ量の縮小、アクセスの高速化を図るものである。1行のそれぞれのデータの相関関係はほとんど無いが(あるとすればデータの切り分けがおかしい)1列のデータは似通ったものが入力されている可能性が高い。よって初期のインメモリDBでは列毎にZIPなどの圧縮をかけてメモリ上に展開する実装が行われた。
これにより参照に関しては、かなり高速にデータが処理される。しかしながら挿入については展開、追加、圧縮の処理が行われるのでパフォーマンスはがくっと落ちる。従来ファイルをどのように高速にアクセスするかに腐心していた方向からCPU速度が重視される方向に切り替わったわけだ。
最新のインメモリDBではカラムデータの持ち方を工夫し、高速インサートを実現しているものもある。もちろんオンメモリでデータを処理するという

この高速DBを使う事により日常業務でデータを集め夜間に集約するという業務は、リアルタイムにデータを処理し業務内に処理を完了するように変化していくだろう。多店舗で構成されるPOSを例にとれば、従来店舗毎にデータを集め夜間に集積、解析していた業務は、POSから入力されたデータが瞬時に集約される形態に取って代わられる。夜間バッチにかける費用、保守要員、バッチ処理失敗によるリカバリ業務などが不要となり多大なコスト削減となるだろう。

実際にCENTOS6.3にmemSQL2.0をインストールし試してみたが、メモリが少ない状況ではあまり恩恵が少ないようだ。また当然ながら電源喪失においてはデータは失われる。二重化などの処理は必須となるだろう。また従来のRDBにおいてもメモリ展開する機能が実装されつつある。
主な製品としてはmemSQL、日本では高速屋などがシェアを取っているようだ。

高速、大メモリのPCは必要となるが今後インメモリDBが従来のRDBにとって変わる状況も増えていくだろう。

[<< 安粕βができたよ!]

[容量無制限のオンラインストレージ BITCASA >>]