MongoDB のような no-sql の利点の 1 つは、水平方向に自動的にスケーリングできることだと思います。安価なマシンを追加するだけで、データが新しいマシンに「広がる」ことができます。
RDBMS の場合はどうですか? RDBMS もそれを自動的に行いますか?
MongoDB のような no-sql の利点の 1 つは、水平方向に自動的にスケーリングできることだと思います。安価なマシンを追加するだけで、データが新しいマシンに「広がる」ことができます。
RDBMS の場合はどうですか? RDBMS もそれを自動的に行いますか?
ここでの答えは「種類」です。MySQLには、「無料」のネイティブなものは実際にはありません。MSSQLやOracleなどの大きなRDBMSテクノロジーは、スケールアウトを非常によくサポートしています。ただし、どちらのテクノロジも高価であり、MSSQLで1,000台のサーバーを経由して「それを実行する」と言う方法はありません。
もちろん、サーバーと技術に何百万ドルも費やしても、参加する準備はできていません。つまり、500台のサーバー間でデータを確実に結合するにはどうすればよいでしょうか。
正直なところ、あなたの質問は、MongoDBやCouchDBのようなテクノロジーの存在そのものによっておそらく最もよく答えられると思います。これらのテクノロジーは存在しますが、開発者は確実に「水平化」する方法を必要としています。RDBMSは、その性質上、水平化が得意ではありません。繰り返しますが、どのように結合をスケーリングできますか?
私は MySQL のみを使用しており、MySQL はパーティショニングをサポートしています。ただし、パーティショニングは単一のデータベース サーバーに制限されます。つまり、水平スケーリング (データベースを複数のマシンにシャーディングすること) は、データベース エンジンによって管理されるものではありません。これは、アプリケーション レベルで管理する必要があります。
MySQL パーティショニングは、書き込みが多いユースケースで非常にうまく機能すると言われています。
さらに方向性を示すには: