45

いくつかのグーグルの後、私は見つけました:

mysql docsからのメモ:

MySQL Cluster はノード間でテーブルを自動的にシャード (分割) し、データベースを低コストのコモディティ ハードウェアで水平方向にスケーリングして、SQL からアクセスする場合と NoSQL API を介して直接アクセスする場合の両方で、読み取りと書き込みが集中するワークロードに対応できるようにします。

リレーショナル データベースは水平スケーリングできますか? どういうわけかNoSQLデータベースに基づいていますか?

誰かが実際の例を持っていますか?

このようなデータベースで SQL リクエスト、トランザクションなどを管理するにはどうすればよいですか?

4

5 に答える 5

27

答えは、明白にイエスだと思います。SQL は単なるデータ アクセス言語であることを覚えておく必要があります。複数のコンピュータやネットワーク パーティションに拡張できない理由はまったくありません。やりがいのある問題ですか?それが、それを行うソフトウェアが初期段階にある理由です。

さて、あなたが尋ねようとしているのは、「私がよく知っていて、標準の SQL タイプのリレーショナル データベース管理システムに組み込まれているすべての機能を、このように複数のサーバーで動作するように開発できるか?」ということだと思います。この問題を深く研究していないことは認めますが、「いいえ、できない」という定理があります。 Consistency-Availability-Partition Theoremは、3 つの性質すべてを同じレベルで持つことはできないと仮定しています。

さて、すべての実用的な目的のために、「シャーディング」または「パーティショニング」またはあなたがそれを呼びたいものは何でもなくなるわけではありません。それとは反対に。これは、CAP定理がどの程度保持されているかを考えると、データベースについての考え方とデータベースとのやり取りの方法を(少なくともある程度は)変える必要があることを意味します。多くの開発者は、No-SQL プラットフォームで成功するために必要な移行を既に行っていますが、まだ多くの開発者が行っていません。最終的に、モデルの十分な成熟度と効果的な回避策が開発され、あなたが言及する意味での従来の SQL データベースは、多かれ少なかれ複数のマシンで実用的になります。これはすでに成果が出始めており、あと数年待てばその時点に到達できると思います。または私たちの もはや必要のないところまで思考をシフトし、世界はより良い場所になるでしょう。:)

于 2014-11-27T03:59:43.400 に答える