QA@IT

NoSQLについて

3380 PV

現在MySQL 5.5を利用しているのですが、MySQL 5.6への移行を考えています。
5.6からはNoSQLを利用できるという記載があるのですが、NoSQL とはいったいどういうものなのか、イメージができません。
NoSQLとSQLでのデータベースへの同時アクセスという説明は、同一のデータベースに対し、NoSQL でアクセスするか、SQL でアクセスするかをクライアント側で選択できるということでしょうか?
現在利用しているデータベースをそのまま移行し、NoSQL として利用できるものなのでしょうか?
拙い質問ですが、回答いただけるとありがたいです。

回答

MySQL 5.6 の NoSQL って InnoDB の memcached plugin のことだと思います。ストレージエンジンが InnoDB のテーブルに memcached プロトコルでアクセスできるようになるものです。

普通に SQL でアクセスするよりも高速ですが、memcached プロトコルでできるような get/set しかできません。

NoSQLとSQLでのデータベースへの同時アクセスという説明は、同一のデータベースに対し、NoSQL でアクセスするか、SQL でアクセスするかをクライアント側で選択できるということでしょうか?

MySQL の標準の 3306 ポートとは別に、memcached plugin が memcached プロトコルのためのポートでリッスンします。memcached のクライアントでそのポートに接続できます。

現在利用しているデータベースをそのまま移行し、NoSQL として利用できるものなのでしょうか?

できるといえばできますが「NoSQL として利用できる」という言い回しには違和感があります。「NoSQL」がなんなのかはとても曖昧なので(かつてはシンプルな KVS ですが、今となっては単なる KVS を超えた機能を持っているものが多いので)。

なので「InnoDB のテーブルに memcached プロトコルでアクセスできる」あるいは「memcached のストレージを InnoDB にできる」ぐらいに考えたほうが良いと思います。

編集 履歴 (0)
  • とてもわかりやすい返信ありがとうございます!
    SQLでアクセスするか、NoSQLでアクセスするか、という違いであるというイメージがわきました。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。