3

MongoDB のような no-sql の利点の 1 つは、水平方向に自動的にスケーリングできることだと思います。安価なマシンを追加するだけで、データが新しいマシンに「広がる」ことができます。

RDBMS の場合はどうですか? RDBMS もそれを自動的に行いますか?

4

2 に答える 2

4

ここでの答えは「種類」です。MySQLには、「無料」のネイティブなものは実際にはありません。MSSQLやOracleなどの大きなRDBMSテクノロジーは、スケールアウトを非常によくサポートしています。ただし、どちらのテクノロジも高価であり、MSSQLで1,000台のサーバーを経由して「それを実行する」と言う方法はありません。

もちろん、サーバーと技術に何百万ドルも費やしても、参加する準備はできていません。つまり、500台のサーバー間でデータを確実に結合するにはどうすればよいでしょうか。

正直なところ、あなたの質問は、MongoDBやCouchDBのようなテクノロジーの存在そのものによっておそらく最もよく答えられると思います。これらのテクノロジーは存在しますが、開発者は確実に「水平化」する方法を必要としています。RDBMSは、その性質上、水平化が得意ではありません。繰り返しますが、どのように結合をスケーリングできますか?

于 2010-10-03T06:49:13.090 に答える
2

私は MySQL のみを使用しており、MySQL はパーティショニングをサポートしています。ただし、パーティショニングは単一のデータベース サーバーに制限されます。つまり、水平スケーリング (データベースを複数のマシンにシャーディングすること) は、データベース エンジンによって管理されるものではありません。これは、アプリケーション レベルで管理する必要があります。

MySQL パーティショニングは、書き込みが多いユースケースで非常にうまく機能すると言われています。

さらに方向性を示すには:

Yahoo でのパーティショニングによる mysql 書き込みのスケーリング

Netlog でのデータベース シャーディング

于 2010-10-01T16:04:47.353 に答える