質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
NoSQL

NoSQL(not only SQL)は、リレーショナルデータベース管理システムとは異なるデータベースシステムを指す言葉です。

Q&A

解決済

1回答

1338閲覧

NoSQLはスケールアウトしやすいのか(I/Oの観点)

take_3306

総合スコア242

NoSQL

NoSQL(not only SQL)は、リレーショナルデータベース管理システムとは異なるデータベースシステムを指す言葉です。

0グッド

1クリップ

投稿2018/08/30 01:20

NoSQLはなぜスケールアウトしやすいのか検索すると、
だいたい「一貫性を捨てているから」、「トランザクションを気にしなくてよいから」、という回答がでてきます。
もちろん、その観点ではそのとおりだと納得しています。

ですが、RDBでスケールアウトではなくスケールアップがおこなわれてきたのは
I/Oの負荷の観点もあったと思います。
具体的には、DBのデータがメモリにのりきらず、結果ディスクへのI/Oが発生することで
パフォーマンスが悪化すると。仮に2台構成にしたところでサーバースペックが同じで
データ量も同じならメモリにのる量も変わらず、パフォーマンス向上は見込めないというものです。

この観点で考えたときに、NoSQLだとしてもスケールアウトしたところで各サーバー上で
メモリにのるデータ量は変わらないので、I/Oの観点ではパフォーマンスは上がらないと考えているのですが
この認識で合っているでしょうか。

※業務で困っているわけではないのですが、とても気になったので質問させてもらいました。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

NoSQL は、キーに基づいてデータを分散しています。データは、キーごとに各ノードに分散されており、CRUD処理によって、そのキーに対する処理となります。このため、キーをまたがらない処理では、キーに紐付くデータを、キーが格納されているノードでのみ処理が行われます。このため、データ量が増えても、ノード数を増やしていけば、1ノードあたりで処理する量は増えないので、スケールアウトすることができます。
一方、RDBでは、すべてのデータは共有されており、一度計算するサーバーにデータを集約する必要があるため、スケールアウトが難しくなります。
これを解決するために、分析系のRDBでは、シェアードナッシング方式をとり、各ノードで処理するように作られており、パフォーマンスを向上させています。一方、この方式ではデータの整合性をとることが難しくなるため、トランザクション処理が苦手です。

投稿2022/02/04 07:17

wfukatsu

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問